你的位置:首页 > 软件开发 > 操作系统 > 深入浅出-iOS函数式编程的实现 响应式编程概念

深入浅出-iOS函数式编程的实现 响应式编程概念

发布时间:2016-03-07 13:01:02
原文出处: Yangcs(Yangcs) 简介本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助。配图作为一个iOS 开发者,那 ...

原文出处: Yangcs(Yangcs)  

简介

本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助。

深入浅出-iOS函数式编程的实现  响应式编程概念配图

作为一个iOS 开发者,那么你一定用过Masnory/ SnapKit;

  • Masonry是一个OC开发中,非常好用的自动布局的第三方框架;
  • SnapKit是Masonry团队打造的swift版本的自动布局框架;make.centerY.equalTo(self.view).offset(100);

     

    就是这个“.”让Masonry更加鲜活的展示给了开发者,在我心中  - (void)run;  - (void)run{

  • 实例化并调用相关的方法  Person*person = [[Personalloc]init];    person.runBlock().studyBlock().runBlock();

     

    分解目标      [[person run1] study1];

     

    2.再实现最终目标

    显然,如果想要实现[person run1]调用一个方法,那么run1就需要一个返回一个对象,让这个对象去调用study1。-(Person*)run1;

     

    方法的实现

     

     - (Person*)run1 {

     

    实现最终目标:

     

         person.runBlock().studyBlock().runBlock();

     

    在OC中,`()`block是以()的形式去执行的,猜想如果返回一个block的话,那么我就可以用()来实现runBlock()这种效果了吧!- (Person* (^)())runBlock;

     

    实现:

     

      - (Person* (^)())runBlock {  

     

    再来看一下Masonry的一个函数式编程

     

     make.right.equalTo(self.right).insets(kPadding);

     

    最终调用的函数:- (MASConstraint* (^)(id))equalTo {  

     

    函数式编程总结

    • 如果想再去调用别的方法,那么就需要返回一个对象;
    • 如果想用()去执行,那么需要返回一个block;
    • 如果想让返回的block再调用对象的方法,那么这个block就需要返回一个对象(即返回值为一个对象的block)。

    响应式编程的概念

    在网上流传一个非常经典的解释`响应式编程的概念`

    原标题:深入浅出-iOS函数式编程的实现 响应式编程概念

    关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。