下载DEMO
最近看一些招聘信息的时候,尽然有人提到熟悉ReactiveCocoa。并且还是所谓的加分项。对于这个工具,熟练使用就好。一般工程不建议使用。
个人暂时觉得有一下几点:(以后待补充–不喜欢就别喷)
1:工具包太大
2:出问题了,调试非常不容易。
3:信号漫天飞。
4:工程需要用到的功能,可能就需要ReactiveCocoa他的一点点功能而已。资源占用太大
好了废话不多说。直接进入主题。
不用去罗列图片什么的,咱们直接进入代码看。
- 先要弄明白两个名词
1:订阅者-接受信号,接受发布者发出的信号内容
2:发布者-发布信号,订阅者发送数据源
- 使用过程
1:订阅者就用subscribeNext:(void (^)(id x))nextBlock
2: 发布信号sendNext:(id)value - 发布到订阅流程
首先订阅信号
在订阅信号的时候,主要通过订阅RACBaseProctal
这个协议。
顺便当前的对象也接受了这个协议,就要实现这个接口的方法。
编写自己的信号,我就写了其中的一个方法
在订阅信号的时候,系统做了一个假的堆栈。其实就是用一个数组,去装填接受了订阅RACBaseProctal
的对象。
于是乎看下面的代码
// 组装对象
- (NSMutableArray * )subscribeNext:(void (^)(id x))nextBlock {
NSCParameterAssert(nextBlock != NULL);
RACBaseProctal * Proctal = [RACBaseProctal subscriberWithNext:nextBlock];
return [self subscribe