从MJRefresh学用宏减少重复代码
最近有在项目中加载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源码。
延伸:
重复代码能用宏的,都可以考虑用宏来代替。
要是有点收获的,点个喜欢吧,哈哈。。