美文网首页
从MJRefresh学用宏减少重复代码

从MJRefresh学用宏减少重复代码

作者: 70岁了还要浪 | 来源:发表于2016-05-25 10:16 被阅读83次

最近有在项目中加载gif动画的需求,找了下资料,最后发现SDWebimage有封装的加载gif的方法。意料之外,于是对常用的开源的第三方都仔细研究了一遍,发现很多东西还是很有意思的。以下为MJRefresh的一些可以借鉴的地方。

如下图,这就是MJRefresh的 MJRefreshConst.h  文件的内容。

1.用宏来代替弱引用。

2.不知道还有多少人配置颜色的时候还傻傻的写_buttonView.backgroundColor= [UIColorcolorWithRed:244/255.0green:244/255.0blue:244/255.0alpha:1.0];

3.状态检查:对于一个需要区别登录用户和未登录的app,是不是每一个入口都要这样:

if(![MPKManagerToolsharedManagerTool].user.customerId) {

AppDelegate* appDelegate = (AppDelegate*)[[UIApplicationsharedApplication]delegate];

[appDelegatesetupLoginVC];

return;

}

然而,用宏只要这样就好

- (void)setState:(MJRefreshState)state

{

MJRefreshCheckState

if(state ==MJRefreshStateRefreshing) {

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5*NSEC_PER_SEC)),dispatch_get_main_queue(), ^{

[selfexecuteRefreshingCallback];

});

}

}

一行代码能解决的,就不要用五行代码。

说的不明白的地方,请参考MJRefresh源码。

延伸:

重复代码能用宏的,都可以考虑用宏来代替。

要是有点收获的,点个喜欢吧,哈哈。。

相关文章

  • 从MJRefresh学用宏减少重复代码

    最近有在项目中加载gif动画的需求,找了下资料,最后发现SDWebimage有封装的加载gif的方法。意料之外,于...

  • if-else后面一定要带上{}

    今天遇到一个坑在 用Xtrace 分析MJRefresh代码的时候,由于对NSLog进行宏定义 然而 上面这段代码...

  • 面向对象的应用

    1.面向对象 面向对象有什么用呢,继承有什么用呢,其实用处很大。就是可以减少代码的重复使用,化繁为简。把重复的代码...

  • scala控制抽象

    控制抽象 1. 减少代码重复

  • 如何优化网页加载速度

    1.减少css,js文件数量及大小(减少重复性代码,代码重复利用),压缩css和js代码。 2.图片的大小 3.把...

  • 模板字面量类型

    作用:减少 ts 重复代码 上面两个 type 里面的 left right top bottom 都是重复代码 ...

  • 原生js事件简化

    像这样一个个的改变style太过于麻烦,我们可以将代码精简,用循环来减少代码的重复...

  • Python匿名函数

    Python匿名函数 优点:减少代码的重复性、模块化代码

  • OC:封装 MJRefresh

    背景: 为了避免写大量重复代码,故封装了该分类。本次只是封装了 MJRefresh 的常用场景,包括 Header...

  • 如何学习LomBok?

    1、lombok为什么会出现?解决了什么问题? lombok是用来解决代码的重复问题,减少代码重复,让代码更简练,...

网友评论

      本文标题:从MJRefresh学用宏减少重复代码

      本文链接:https://www.haomeiwen.com/subject/uxoarttx.html