ReactiveCocoa的冷信号和热信号

206 阅读1分钟

ReactiveCocoa背景

ReactiveCocoa(简称RAC)是最初由GitHub团队开发的一套基于Cocoa的FRP框架。FRP是Function Reactive Programming(函数式响应式编程),其优点是用随时间改变的函数表示用户输入,这样就不需要可变状态了。

什么是冷信号和热信号

冷热信号的概念源于.Net框架Reactive Extensions(RX)中的Hot Observable和Cold Observable,两者的区别是:
(1)Hot Observable是主动的,尽管并没有订阅事件,但它会时刻推送,就像鼠标移动;Cold Observable是被动的,只有订阅的时候,才会发布消息;
(2)Hot Observable可以有多个订阅者,是一对多,集合可以与订阅者共享信息;而Cold Observable只能一对一,当有不同订阅者,消息是重新完整发送。
RACSubject是热信号,会时刻推送;
直接创建的RACSignal是冷信号,订阅该信号会收到完整的消息。