美文网首页
iOS block=链式编程的简单实现 帮助理解篇

iOS block=链式编程的简单实现 帮助理解篇

作者: 帅气的阿斌 | 来源:发表于2017-07-06 11:10 被阅读12次

@interface CaculateMarker :NSObject

@property(nonatomic,assign) NSInteger count;

@property(nonatomic,copy) CaculateMarker*(^plus)(NSInteger num);

- (CaculateMarker* (^)(NSInteger num))add;

@end


@implementation CaculateMarker

- (CaculateMarker*(^)(NSInteger num))add{

      return^(NSInteger num){

            self.count+=num;  

            return self;

      };

}

- (CaculateMarker*(^)(NSInteger num))plus{

      return^(NSInteger num){

            self.count+=num;

            return self;

      };

}

@end

这里要实现的是类似于 caculateMarker.add(num).add(num2).add(num3)...的运算调用。

链式编程利用了get方法或者说懒加载,不过这次我们懒加载的是block

下面是写的两个block,一个plus一个是add 没错,其实他们实现的都是加法运算,而下面的写法更简洁清晰。

@property(nonatomic,copy)CaculateMarker*(^plus)(NSInteger num);

- (CaculateMarker* (^)(NSInteger num))add;

分析下:

caculateMarker.add(num).

1.caculateMarker.add   这里就是懒加载来获取add or plus这个block,然后我们在以下的.m中实现get方法,返回一个block,这个block包含了加法运算逻辑,然后把这个block返回。

- (CaculateMarker*(^)(NSInteger num))plus{

      return^(NSInteger num){

            self.count+=num;

            return self;

      };

}

那么caculateMarker.add(num). 实际上是 addBlock = ^(NSInteger num){...};

替换下就是addBlock(num),这样我们的链式基本就完成了,这样拆解开的话应该蛮好理解的了。

相关文章

  • iOS block=链式编程的简单实现 帮助理解篇

    @interface CaculateMarker :NSObject @property(nonatomic,a...

  • iOS-链式编程思想

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

  • iOS链式编程

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

  • Block实现链式编程(iOS)

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

  • Block实现链式编程(iOS)

    使用场景:对象调用了一个方法想继续再调用另一个方法 方案1.直接调用两次 (Person *)study{NSLo...

  • iOS的block与编程思想(一)

    本文承接自上一篇《iOS的block与链式编程思想》 函数式编程 首先我们需要明白什么是函数式编程么?先说一点比较...

  • iOS利用Block实现链式编程

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

  • iOS objc Block实现链式编程

    本篇笔记大部分参考于Block和链式编程感谢原作者。本笔记仅在细节上做补充。 综述 使用场景:对象调用了一个方法想...

  • iOS链式、函数式和响应式编程

    原文编程思想-iOS链式、函数式和响应式编程 在了解链式、函数式和响应式编程前,我们需要回顾下Block,它在下面...

  • IOS_编程思想_链式编程练习

    在之前的两篇文章中已经简单的介绍了IOS的编程思想,那在此处写一个链式编程的联系来加深对链式编程思想的理解!!! ...

网友评论

      本文标题:iOS block=链式编程的简单实现 帮助理解篇

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