ReactiveCocoa(RAC)

ReactiveCocoa是一个基于函数响应式编程思想(Funcation Reactive Programming,简称FRP)的框架。由几个重要的部分组成,如下:

冷信号:例如RACSignal,它可以被订阅,订阅后进行逻辑处理或者数据传递。

热信号RACSubject:可以当成一个信号,也可以充当信号发送者。

订阅者:例如RACSubscriber。用于订阅和发送数据。它是一个协议,由具体的类实现。

清理者:例如RACDisposable,用于取消或者清理订阅者的资源。


 一,冷信号和热信号的区别?

   在RAC4中,Singal对应RAC2中的RACSubject即为热信号,而SignalProducer对应RAC2中的RACSignal即为了冷信号。

特点:

热信号是主动的,即使你没有订阅事件,也可以时刻推送。而冷信号是被动的,只有当你订阅的时候,它才会发送消息。

热信号可以有多个订阅者,是一对多,信号可以与订阅者共享信息。而冷信号只能一对一,当有不同的订阅者,消息会重新完整发送。


二,什么是函数响应式编程FRP

函数式编程:是把运算过程尽量写成一系列嵌套的函数调用。

如果想去调用别的方法, 就要返回一个对象

如果想用()去执行, 就要返回一个block

如果想让block再调用对象的方法, 那么block就需要返回一个对象(即返回一个值为对象的block)


响应式编程:

例如,在命令式编程环境中, a = b + c 表示将表达式的结果赋给 a,而之后改变 b 或 c 的值不会影响 a。但在响应式编程中,a的值会随着 b 或 c 的更新而更新。

【优点】

可读性强:

- 代码逻辑更加集中

- 减少共享变量,减少出错率

- 框架分步,流程清晰

复用性高:

- 丰富的高阶函数。

你可能感兴趣的:(ReactiveCocoa(RAC))