美文网首页
iOS链式函数式响应式编程

iOS链式函数式响应式编程

作者: crazyfox | 来源:发表于2020-12-10 11:25 被阅读0次

    iOS链式,函数式,响应式编程

    block表达式语法:

    
    ^返回值类型(参数列表){表达式}
    
    ^int (int count){
            return count+1;
    };
    
    

    作为函数参数的语法

    -(void)fun:(int (^)(int))block{}
    

    定义block简写

    typedef int (^sumBlock) (int);
    -(void)fun1:(sumBlock)block{}
    

    作为返回值的语法

    -(int(^)(int))fun{
        return ^(int count){
            return count;
          };
    }
    

    定义block简写

    -(sumBlock)fun2{
      return ^(int count){
          return count;
      };
    }
    

    总结

    * block作为对象的属性

    * block 作为方法的参数

    * block作为返回值!!!(扩展性非常强,今天的主角)

    链式编程

    方法的返回值必须是方法的调用者

    链式写法

    - (ViewController1 *)test1;
    - (ViewController1 *)test1
    {
       return self;
    }
    

    调用:

    self.test1;
    

    链式编程带参数的写法:将block作为返回值

    - (ViewController1 *(^)(id some))test2;
    - (ViewController1 *(^)(id some))test2{
        return ^(id some){
            return self;
        };
    }
    

    调用:

    self.test2(@"123");
    

    函数式编程

    函数式编程思想:是将操作尽可能写在一起!嵌套的函数!!

    本质:就是往方法里面传入Block,方法中嵌套Block调用.

    - (ViewController1 *)qtest:(NSInteger (^)(NSInteger age))ageBlock;
    - (ViewController1 *)qtest:(NSInteger (^)(NSInteger age))ageBlock{
        self.age = ageBlock(_age);
        return self;
    }
    

    调用:

    [self qtest:^NSInteger(NSInteger age) {
        self.age +=90;
        return self.age;
    }];
    

    函数+链式编程

    若将函数和链式编程结合,我们的程序将会爆发出艺术的火花

    典型案例:Masonry界面布局框架

    - (ViewController1 *(^)(NSInteger age))btest;
    - (ViewController1 *(^)(NSInteger age))btest{
        return ^(NSInteger age){
            self->_age += 20;
            return self;
        };
    }
    

    调用:

    self.btest(20);
    

    小例子(https://github.com/qianbingzhen/QBZTest/tree/master/testChain)

    响应式编程

    解释:在程序开发中:a = b + c赋值之后 b 或者 c 的值变化后,a 的值不会跟着变化;

    响应式编程目标就是,如果 b 或者 c 的数值发生变化,a 的数值会同时发生变化;

    响应编程的经典案例:KVO

    响应式编程框架:ReactiveCocoa(RAC)

    RAC学习可参考SkyHarute 简书博客

    作者:iOS技术汇总

    链接:https://juejin.cn/post/6844903937514930190

    来源:掘金

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:iOS链式函数式响应式编程

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