链式编程思维

        链式编程不得不先说下Masonry,之前的项目使用到自动布局,所以引用了Masonry这个库,感觉写这个库的写得特别好,能够将非常繁琐的布局代码使用一句代码实现:

make.right.equalTo(self.view.mas_right).with.offset(-15);

        像这种通过“点”语法,将需要执行的代码块持续执行,这就是链式编程,他能将代码简单块,使代码通俗易懂,书写方便

        像这样equalTo(self.view.mas_right) 通过“()”去调用函数,一般调用完返回的还是这个对象本身,就是函数式编程。

1、实现函数式 + 链式(无参)

UIView+Chained.h :

- (UIView *(^)())ch_toRed;

UIView+Chained.m :

- (UIView *(^)())ch_toRed {

     return ^() {

           self.backgroundColor = [UIColor redColor];

           return self;

     };

}

调用:

aView.ch_toRed();

2、实现函数式 + 链式(带参)

UIView+Chained.h :

- (UIView *(^)(CGFloat,CGFloat,CGFloat,CGFloat))ch_frame;

- (UIView *(^)(UIColor *))ch_backgroundColor;

UIView+Chained.m :

- (UIView *(^)(CGFloat, CGFloat, CGFloat, CGFloat))ch_frame {

          return ^(CGFloat x, CGFloat y, CGFloat width, CGFloat height) {

                 self.frame = CGRectMake(x, y, width, height);

                return self;

       };

}

- (UIView *(^)(UIColor *))ch_backgroundColor {

         return ^(UIColor *value) {

               self.backgroundColor = value;

              return self;

      };

}

调用:

aView.ch_frame(10,100,100,100).ch_backgroundColor([UIColor redColor]);

       链式编程的思维一般是以block作为返回参数,最终以对象本身返回,还有,链式编程书写的时候没有智能提示,所以可以编写一些宏来解决,最后,看看效果:

链式编程效果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【一】遭遇 到今天iOS开发中最常用的语言还是objc,市场就像泰坦尼克号,人虽然在上楼,但是船在下沉,所以人还是...
    窦豆逗阅读 632评论 0 0
  • 1.NSTimer //暂停if ([timer isValid]) {[timer setFireDate:[N...
    俊月阅读 1,549评论 0 0
  • iOS_autoLayout_Masonry 概述 Masonry是一个轻量级的布局框架与更好的包装AutoLay...
    指尖的跳动阅读 1,351评论 1 4
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,238评论 1 6
  • 闻令起身把操练, 杀声穿透山谷间, 精武强能家国在, 圣神使命记心田。
    大吕同志阅读 251评论 0 0

友情链接更多精彩内容