1. 它是什么?
官方解释:
[RACSignal] is a push-driven stream with a focus on asynchronous event
delivery through subscriptions.
其它解释:
ReactiveCocoa(简称为RAC
),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。
信号是数据流,可以被绑定和传递。可以把信号想象成水龙头,只不过里面不是水,而是玻璃球(value),直径跟水管的内径一样,这样就能保证玻璃球是依次排列,不会出现并排的情况(数据都是线性处理的,不会出现并发情况)。水龙头的开关默认是关的,除非有了接收方(subscriber),才会打开。这样只要有新的玻璃球进来,就会自动传送给接收方。
2.它的作用?
代替target,代理,通知,kvo,不用关心调用顺序,直接考虑结果等等....
3.如何工作?
把所有事件都看成一个信号,信号创建之后只要有 订阅 就可以收到创建之后发送的数据! 同时我们也可以进行当前信号的 过滤、方法的跳转、然后返回对应的信号和数据...
函数式编程(Functional Programming):使用高阶函数,例如函数用其他函数作为参数。
响应式编程(Reactive Programming):关注于数据流和变化传播。
4. ReactiveCocoa操作须知
- 所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,因此只要继承RACStream就有了操作处理方法。
ReactiveCocoa操作思想
- 运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序编程接口:方法)执行结果的技术.
- Hook用处:截获API调用的技术。
- Hook原理:在每次调用一个API返回结果之前,先执行你自己的方法,改变结果的输出。