iOS 之 RAC的簡(jiǎn)單使用1

首先利用 cocoapods 將RectiveCocoa集成到項(xiàng)目中去。

ReactiveCocoa是函數(shù)響應(yīng)式編程!

響應(yīng)式編程思想:一種面向數(shù)據(jù)流和變化傳播的編程范式。

代表:KVO

函數(shù)式編程思想:把操作盡量寫成一系列的嵌套函數(shù)或著方法調(diào)用。

函數(shù)式特點(diǎn):每個(gè)方法必須有返回值(對(duì)象本身),把函數(shù)或者block當(dāng)作參數(shù),block參數(shù)(需要操作的值),block返回值(操作結(jié)果);

代表:ReactiveCocoa

鏈?zhǔn)骄幊趟枷耄菏菍⒍鄠€(gè)操作(多行代碼)通過(guò)點(diǎn)號(hào)(.)鏈接在一起成為一句代碼,使代碼可讀性更好。例如massory 中的添加約束:make.left.right.top.bottom.equalTo(10) 便是鏈?zhǔn)骄幊趟枷?

導(dǎo)入#import<ReactiveCocoa/ReactiveCocoa.h>頭文件

1.? RACSignal信號(hào)類 以及 RACDisposable

//RACSignal:信號(hào)類,當(dāng)我們有數(shù)據(jù)產(chǎn)生,創(chuàng)建一個(gè)信號(hào)!

//1.創(chuàng)建信號(hào)(冷信號(hào)!)

//didSubscribe調(diào)用:只要一個(gè)信號(hào)被訂閱就會(huì)調(diào)用!!

//didSubscribe作用:利用subscriber發(fā)送數(shù)據(jù)!!

RACSignal * signal = [RACSignal createSignal:^RACDisposable *(id subscriber) {

//3.發(fā)送數(shù)據(jù)subscriber它來(lái)發(fā)送

[subscriber sendNext:@"呵呵哈哈嘿嘿"];

return [RACDisposabledisposableWithBlock:^{

//只要信號(hào)取消訂閱就會(huì)來(lái)這里

//清空資源!!

NSLog(@"哥么來(lái)了!!");

}];

}];

//2.訂閱信號(hào)(熱信號(hào)!!)

//nextBlock調(diào)用:只要訂閱者發(fā)送數(shù)據(jù)就會(huì)調(diào)用!

//nextBlock作用:處理數(shù)據(jù),展示UI界面!

RACDisposable* disposable = [signal subscribeNext:^(idx) {

//x:信號(hào)發(fā)送的內(nèi)容!!

NSLog(@"%@",x);

}];?

//默認(rèn)一個(gè)信號(hào)發(fā)送數(shù)據(jù)完畢就會(huì)主動(dòng)取消訂閱

//只要訂閱者在(即將訂閱者強(qiáng)引用,在函數(shù)結(jié)束的時(shí)候訂閱者也不會(huì)被釋放),就不會(huì)自動(dòng)取消訂閱

//手動(dòng)取消訂閱

[disposable dispose];


2.RACSubject

//1.創(chuàng)建信號(hào)

RACSubject* subject = [RACSubject subject];

//2.訂閱信號(hào)

//不同的信號(hào)訂閱的方式不一樣!!(因?yàn)轭愋筒灰粯?所以調(diào)用的方法不一樣)

//RACSubject處理訂閱:拿到之前的_subscribers保存訂閱者

[subjectsubscribeNext:^(idx) {

NSLog(@"接受到了數(shù)據(jù):%@",x);

}];

//3.發(fā)送數(shù)據(jù)

//遍歷出所有的訂閱者,調(diào)用nextBlock

[subjectsendNext:@"漢堡包"];


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容