RAC--常用API整理

一环疼、常見類

1蹋嵌、RACSiganl 信號類芽隆。
RACEmptySignal :空信號询微,用來實現(xiàn) RACSignal 的 +empty 方法崖瞭;
RACReturnSignal :一元信號,用來實現(xiàn) RACSignal 的 +return: 方法拓提;
RACDynamicSignal :動態(tài)信號读恃,使用一個 block - 來實現(xiàn)訂閱行為,我們在使用 RACSignal 的 +createSignal: 方法時創(chuàng)建的就是該類的實例代态;
RACErrorSignal :錯誤信號寺惫,用來實現(xiàn) RACSignal 的 +error: 方法;
RACChannelTerminal :通道終端蹦疑,代表 RACChannel 的一個終端西雀,用來實現(xiàn)雙向綁定。
2歉摧、RACSubscriber 訂閱者
3艇肴、RACDisposable 用于取消訂閱或者清理資源,當信號發(fā)送完成或者發(fā)送錯誤的時候叁温,就會自動觸發(fā)它再悼。
RACSerialDisposable :作為 disposable 的容器使用,可以包含一個 disposable 對象膝但,并且允許將這個 disposable 對象通過原子操作交換出來冲九;
RACKVOTrampoline :代表一次 KVO 觀察,并且可以用來停止觀察跟束;
RACCompoundDisposable :它可以包含多個 disposable 對象莺奸,并且支持手動添加和移除 disposable 對象
RACScopedDisposable :當它被 dealloc 的時候調(diào)用本身的 -dispose 方法丑孩。
4、RACSubject 信號提供者灭贷,自己可以充當信號温学,又能發(fā)送信號。
RACGroupedSignal :分組信號甚疟,用來實現(xiàn) RACSignal 的分組功能仗岖;
RACBehaviorSubject :重演最后值的信號,當被訂閱時古拴,會向訂閱者發(fā)送它最后接收到的值箩帚;
RACReplaySubject :重演信號,保存發(fā)送過的值黄痪,當被訂閱時紧帕,會向訂閱者重新發(fā)送這些值。
5桅打、RACTuple 元組類,類似NSArray,用來包裝值.
6是嗜、RACSequence RAC中的集合類
7、RACCommand RAC中用于處理事件的類挺尾,可以把事件如何處理,事件中的數(shù)據(jù)如何傳遞鹅搪,包裝到這個類中,他可以很方便的監(jiān)控事件的執(zhí)行過程遭铺。
8丽柿、RACMulticastConnection 用于當一個信號,被多次訂閱時魂挂,為了保證創(chuàng)建信號時甫题,避免多次調(diào)用創(chuàng)建信號中的block,造成副作用涂召,可以使用這個類處理坠非。
9、RACScheduler RAC中的隊列果正,用GCD封裝的炎码。
RACImmediateScheduler :立即執(zhí)行調(diào)度的任務,這是唯一一個支持同步執(zhí)行的調(diào)度器秋泳;
RACQueueScheduler :一個抽象的隊列調(diào)度器潦闲,在一個 GCD 串行列隊中異步調(diào)度所有任務;
RACTargetQueueScheduler :繼承自 RACQueueScheduler 迫皱,在一個以一個任意的 GCD 隊列為 target 的串行隊列中異步調(diào)度所有任務歉闰;
RACSubscriptionScheduler :一個只用來調(diào)度訂閱的調(diào)度器。

二、常見用法

rac_signalForSelector : 代替代理
rac_valuesAndChangesForKeyPath: KVO
rac_signalForControlEvents:監(jiān)聽事件
rac_addObserverForName 代替通知
rac_textSignal:監(jiān)聽文本框文字改變
rac_liftSelector:withSignalsFromArray:Signals:當傳入的Signals(信號數(shù)組)新娜,每一個signal都至少sendNext過一次,就會去觸發(fā)第一個selector參數(shù)的方法既绩。

三概龄、常見宏

RAC(TARGET, [KEYPATH, [NIL_VALUE]]):用于給某個對象的某個屬性綁定
RACObserve(self, name) :監(jiān)聽某個對象的某個屬性,返回的是信號。
@weakify(Obj)和@strongify(Obj)
RACTuplePack :把數(shù)據(jù)包裝成RACTuple(元組類)
RACTupleUnpack:把RACTuple(元組類)解包成對應的數(shù)據(jù)
RACChannelTo 用于雙向綁定的一個終端

四饲握、常用操作方法

flattenMap map 用于把源信號內(nèi)容映射成新的內(nèi)容私杜。
concat 組合 按一定順序拼接信號,當多個信號發(fā)出的時候救欧,有順序的接收信號
then 用于連接兩個信號衰粹,當?shù)谝粋€信號完成,才會連接then返回的信號笆怠。
merge 把多個信號合并為一個信號铝耻,任何一個信號有新值的時候就會調(diào)用
zipWith 把兩個信號壓縮成一個信號,只有當兩個信號同時發(fā)出信號內(nèi)容時蹬刷,并且把兩個信號的內(nèi)容合并成一個元組瓢捉,才會觸發(fā)壓縮流的next事件。
combineLatest:將多個信號合并起來办成,并且拿到各個信號的最新的值,必須每個合并的signal至少都有過一次sendNext泡态,才會觸發(fā)合并的信號。
reduce聚合:用于信號發(fā)出的內(nèi)容是元組迂卢,把信號發(fā)出元組的值聚合成一個值
filter:過濾信號某弦,使用它可以獲取滿足條件的信號.
ignore:忽略完某些值的信號.
distinctUntilChanged:當上一次的值和當前的值有明顯的變化就會發(fā)出信號,否則會被忽略掉而克。
take:從開始一共取N次的信號
takeLast:取最后N次的信號,前提條件靶壮,訂閱者必須調(diào)用完成,因為只有完成拍摇,就知道總共有多少信號.
takeUntil:(RACSignal *):獲取信號直到某個信號執(zhí)行完成
skip:(NSUInteger):跳過幾個信號,不接受亮钦。
switchToLatest:用于signalOfSignals(信號的信號),有時候信號也會發(fā)出信號充活,會在signalOfSignals中蜂莉,獲取signalOfSignals發(fā)送的最新信號。
doNext: 執(zhí)行Next之前混卵,會先執(zhí)行這個Block
doCompleted: 執(zhí)行sendCompleted之前映穗,會先執(zhí)行這個Block
timeout:超時,可以讓一個信號在一定的時間后幕随,自動報錯蚁滋。
interval 定時:每隔一段時間發(fā)出信號
delay 延遲發(fā)送next。
retry重試 :只要失敗,就會重新執(zhí)行創(chuàng)建信號中的block,直到成功.
replay重放:當一個信號被多次訂閱,反復播放內(nèi)容
throttle節(jié)流:當某個信號發(fā)送比較頻繁時辕录,可以使用節(jié)流睦霎,在某一段時間不發(fā)送信號內(nèi)容,過了一段時間獲取信號的最新內(nèi)容發(fā)出走诞。
skip:跳躍前邊幾個信號值

五副女、UI - Category(常用匯總)

1、rac_prepareForReuseSignal: 需要復用時用
相關UI: MKAnnotationView蚣旱、UICollectionReusableView碑幅、UITableViewCell、UITableViewHeaderFooterView
2塞绿、rac_buttonClickedSignal:點擊事件觸發(fā)信號
相關UI:UIActionSheet沟涨、UIAlertView
3、rac_command:button類异吻、刷新類相關命令替換
相關UI:UIBarButtonItem裹赴、UIButton、UIRefreshControl
4诀浪、rac_signalForControlEvents: control event 觸發(fā)
相關UI:UIControl
5篮昧、rac_gestureSignal UIGestureRecognizer 事件處理信號
相關UI:UIGestureRecognizer
6、rac_imageSelectedSignal 選擇圖片的信號
相關UI:UIImagePickerController
7笋妥、rac_textSignal
相關UI:UITextField懊昨、UITextView
8、可實現(xiàn)雙向綁定的相關API
rac_channelForControlEvents: key: nilValue:
相關UI:UIControl類
rac_newDateChannelWithNilValue:
相關UI:UIDatePicker
rac_newSelectedSegmentIndexChannelWithNilValue:
相關UI:UISegmentedControl
rac_newValueChannelWithNilValue:
相關UI:UISlider春宣、UIStepper
rac_newOnChannel
相關UI:UISwitch
rac_newTextChannel
相關UI:UITextField

六酵颁、Foundation - Category (常用匯總)

1、NSArray
rac_sequence 信號集合
2月帝、NSData
rac_readContentsOfURL: options: scheduler: 比oc多出線程設置
3躏惋、NSDictionary
rac_sequence 不解釋
rac_keySequence key 集合
rac_valueSequence value 集合
4、NSEnumerator
rac_sequence 不解釋
5嚷辅、NSFileHandle
rac_readInBackground 見名知意
6簿姨、NSIndexSet
rac_sequence 不解釋
7、NSInvocation
rac_setArgument: atIndex: 設置參數(shù)
rac_argumentAtIndex 取某個參數(shù)
rac_returnValue 所關聯(lián)方法的返回值
8簸搞、NSNotificationCenter
rac_addObserverForName: object:注冊通知
9扁位、NSObject
rac_willDeallocSignal 對象銷毀時發(fā)動的信號
rac_description debug用
rac_observeKeyPath: options: observer: block:監(jiān)聽某個事件
rac_liftSelector: withSignals: 全部信號都next在執(zhí)行
rac_signalForSelector: 代替某個方法
rac_signalForSelector:(SEL)selector fromProtocol:代替代理
10、NSOrderedSet
rac_sequence 不解釋
11趁俊、NSSet
rac_sequence 不解釋
12域仇、NSString
rac_keyPathComponents 獲取一個路徑所有的部分
rac_keyPathByDeletingLastKeyPathComponent 刪除路徑最后一部分
rac_keyPathByDeletingFirstKeyPathComponent 刪除路徑第一部分
rac_sequence 不解釋 (character)
rac_readContentsOfURL: usedEncoding: scheduler: 比之OC多線程調(diào)用
13、NSURLConnection
rac_sendAsynchronousRequest 發(fā)起異步請求

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寺擂,一起剝皮案震驚了整個濱河市暇务,隨后出現(xiàn)的幾起案子泼掠,更是在濱河造成了極大的恐慌,老刑警劉巖垦细,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件择镇,死亡現(xiàn)場離奇詭異,居然都是意外死亡括改,警方通過查閱死者的電腦和手機沐鼠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叹谁,“玉大人,你說我怎么就攤上這事乘盖⊙骈荩” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵订框,是天一觀的道長析苫。 經(jīng)常有香客問我,道長穿扳,這世上最難降的妖魔是什么衩侥? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮矛物,結果婚禮上茫死,老公的妹妹穿的比我還像新娘。我一直安慰自己履羞,他們只是感情好峦萎,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忆首,像睡著了一般爱榔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上糙及,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天详幽,我揣著相機與錄音,去河邊找鬼浸锨。 笑死唇聘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的柱搜。 我是一名探鬼主播雳灾,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冯凹!你這毒婦竟也來了谎亩?” 一聲冷哼從身側響起炒嘲,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匈庭,沒想到半個月后夫凸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡阱持,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年夭拌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衷咽。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸽扁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出镶骗,到底是詐尸還是另有隱情桶现,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布鼎姊,位于F島的核電站骡和,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏相寇。R本人自食惡果不足惜慰于,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唤衫。 院中可真熱鬧婆赠,春花似錦、人聲如沸佳励。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽植兰。三九已至份帐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間楣导,已是汗流浹背废境。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留筒繁,地道東北人噩凹。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像毡咏,于是被迫代替她去往敵國和親驮宴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容