今天总结一下非常好用的ReactiveCocoa框架。而且结合MVVM非常实用和方便。
在使用ReactiveCocoa 过程中,除去RACSignal和RACSubject这些信号类以外,有些时候我们可能还需要封装一些固定的操作集合。这些操作集合都是固定的,每次只要一触发就会执行事先定义好的一个过程。在iOS开发过程中,按钮的点击事件就可能有这种需求。那么RACCommand就可以实现这种需求。
当然除了封装一个操作集合以外,RACCommand还能集中处理错误等等功能。今天就来从底层来看看RACCommand是如何实现的。
目录
- 1.RACCommand的定义
- 2.initWithEnabled: signalBlock: 底层实现分析
- 3.execute:底层实现分析
- 4.RACCommand的一些Category
一. RACCommand的定义
首先说说RACCommand的作用。
RACCommand 在ReactiveCocoa 中是对一个动作的触发条件以及它产生的触发事件的封装。
-
触发条件:初始化RACCommand的入参enabledSignal就决定了RACCommand是否能开始执行。入参enabledSignal就是触发条件。举个例子,一个按钮是否能点击,是否能触发点击事情,就由入参enabledSignal决定。
-
触发事件:初始化RAC