美文网首页iOS、swift技术交流!
利用block实现链式编程

利用block实现链式编程

作者: 光明程辉 | 来源:发表于2016-02-12 23:30 被阅读570次
虽然链式编程很少见,但是某些场合下,如果能够巧妙利用block 实现链式编程的话,不仅会提高开发效率,而且代码很清晰直观!也许你会爱上它的!学习它,你只需记住它的写法就行了。
  • 我曾经做过一个蓝牙项目,由于步骤比较多!因为常规写法要调用很多方法一大堆代码看起来也晕晕的,后来,使用到链式编程,代码易读使用更方便!下面分享一下链式编程的简单使用!

  • 链式编程,没什么难,就是利用block直接按照格式写就行了。

下面用一个例子说明:我要去市场买菜!!!(常规写法:)

-首先:新建一个Person类

  • 创建方法(常规写法):
    // 无返回值
    - (void)peoples; // 谁
    - (void)byBuses; // 坐公交去
    - (void)buyVege; // 买东西

  • 实现方法:
    // 无返回值
    - (void)peoples
    {
    NSLog(@"我");
    }

    - (void)byBuses
    {
      NSLog(@"坐公交去");
    }
    
    - (void)buyVege
    {
      NSLog(@"买西红柿和茄子");
    }
    
  • 在main函数调用:
    Person *p = [[Person alloc] init];

      [p peoples];
      [p byBuses];
      [p buyVege];
    
  • 打印结果:

打印结果.png
缺点:如果有许多方法呢?在调用的时候那就要写好多行代码,而且也不好看!

用block 巧妙使用链式编程:

  • 和上面一样,就是注意格式写法而已,并且多了个返回值。

  • 声明方法:
    // 我做车去买菜
    - (Person *(^)(NSString *name))people; // 谁
    - (Person *(^)())byBus;// 做公交
    - (Person *(^)(NSString *VegName))buyVegetables; // 去买菜

  • 实现方法:
    // 我做车去买菜
    - (Person *(^)(NSString *))people
    {
    return ^(NSString *name){
    NSLog(@"帅哥:%@",name);
    return self;
    };
    }

    - (Person *(^)())byBus
    {
          return ^{
            NSLog(@"坐公交去");
            return self;
         };
    }
    
    - (Person *(^)(NSString *))buyVegetables
    {
          return ^(NSString *buyVege){
              NSLog(@"买:%@",buyVege);
            return self;
      };
    }
    
  • 在main函数调用:
    Person *p = [[Person alloc] init];
    // 只需用点就实现调用了
    p.people(@"光明程辉").byBus().buyVegetables(@"西红柿、茄子");

  • 实现打印结果:
打印结果.png

优点:简单,思路清晰!易懂!

相关文章

  • iOS-链式编程思想

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • iOS链式编程

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • 利用block实现链式编程

    虽然链式编程很少见,但是某些场合下,如果能够巧妙利用block 实现链式编程的话,不仅会提高开发效率,而且代码很清...

  • 利用Block实现链式编程

    1、Person的方法 2、执行代码 总结:

  • iOS利用Block实现链式编程

    场景 实现连续加法运算 1 + 2 + 3 + 4.。。。 普通实现 -(NSInteger)addWithPar...

  • 9.22 利用block实现链式编程

    学习了一下链式编程,总结了一下,个人觉得就是利用block直接按照格式写就行。注意格式写法,其实就是多了个返回值?...

  • iOS利用block实现链式编程方法

    【一】遭遇 到今天iOS开发中最常用的语言还是objc,市场就像泰坦尼克号,人虽然在上楼,但是船在下沉,所以人还是...

  • block实现链式编程

  • [iOS] 类似于Masonry中的链式编程

    前言:之前记得有看过链式编程的实现,主要就是用 block 实现的,现在特地再记录一下。 1. 简介 在了解链式编...

  • Block实现链式编程(iOS)

    参考链接 使用场景:对象调用了一个方法想继续再调用另一个方法 方案1. 直接调用两次 方案2 在方法中返回对象本身...

网友评论

  • 乱尘:我还以为是嵌套使用,那不是要晕
    光明程辉:@乱尘 你要高级写法可以参考一下"(刘彦玮写的库)[http://liuyanwei.jumppo.com/2015/09/11/ios-BLE-4.html]

本文标题:利用block实现链式编程

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