一屠阻、介紹
ReactiveCocoa(簡稱RAC)
是由GitHub
團隊開源的一套基于Cocoa
的并且具有FRP
特性的框架家破。
FRP(Functional Reactive Programming)
即響應式編程
熊咽。RAC
就是一個第三方庫,使用它可以大大簡化代碼,提高開發(fā)效率。
整合了系統(tǒng)的各種UI響應事件揭糕、通知、代理锻霎、KVO等功能著角,提供了使用更方便更內聚的API,思路是通過信號的創(chuàng)建和訂閱來完成消息傳遞的旋恼。擴展出了多個信號關聯(lián)吏口、信號變換、信號壓縮后再傳遞等實用的功能冰更。
二产徊、基礎理論
(1) 什么是信號?
RAC
的核心就是信號蜀细,即RACSignal
舟铜。信號--傳遞數(shù)據的工具,當數(shù)據變化時奠衔,信號就會發(fā)送改變的信息深滚,以通知信號的訂閱者執(zhí)行方法。
(2) 什么是冷熱信號涣觉?
1.Hot Observable
是主動的,盡管你并沒有訂閱事件血柳,但是它會時刻推送官册,就像鼠標移動;而Cold Observable
是被動的难捌,只有當你訂閱的時候膝宁,它才會發(fā)布消息鸦难。
2.Hot Observable
可以有多個訂閱者,是一對多员淫,集合可以與訂閱者共享信息合蔽;而Cold Observable
只能一對一,當有不同的訂閱者介返,消息是重新完整發(fā)送拴事。
3.RACSubject
及其子類是熱信號。RACSignal
排除RACSubject
類以外的是冷信號圣蝎。
三刃宵、類介紹
-
RACStream
是一個抽象類,定義了流的一些操作方法徘公∩ぃ框架里面主要是使用的RACStream
的子類RACSignal
和RACSequence
來完成操作的 -
RACSignal
,信號類关面,框架的核心類坦袍,可以訂閱這個信號來收到回調,每次訂閱都會收到一次block
的回調. 可以自定義創(chuàng)建等太,也可以使用框架里面提供的子類捂齐、 -
RACSubscriber
,訂閱者類,遵守了RACSubscriber
協(xié)議的對象都可以是訂閱者澈驼,可以調用方法sendNext:
辛燥、sendError:
、sendComplete:
, 調用后即回調對應的block缝其。 -
RACDisposable
, 訂閱關系的取消和相關資源的清理, 注意不是清理信號對象挎塌。