
ReactiveCocoa培訓
編程思想,ReactiveCocoa初識,ReactiveCocoa進階1,ReactiveCocoa進階2,ReactiveCocoa進階3
編程思想
001--Ma&&鏈式編程,002--響應式編程,003--自定義KVO,004--函數式編程,005--RACReplaySubject
ReactiveCocoa初識
001--Block簡單使用,002--RACSignal類,003--RACDisposable,004--RACSubject,055--RACSubjec簡單使用
ReactiveCocoa進階1
001--RAC集合,002---RAC應用場景,003--Timer,004--登陸驗證碼發送的練習
ReactiveCocoa進階2
001--rac_liftSelector,002--RAC常用的宏,003-RACMulticastConnection,004--RACCommand,005--bind方法簡單使用,006--RAC bind內部實現(了解)
ReactiveCocoa進階3
001--RAC映射,002--RAC組合,003--RAC忽略,004--登陸邏輯,005--RAC&&MVVM
章節1
編程思想
第1節
Ma&&鏈式編程
移動平均線,Moving Average,簡稱MA,原本的意思是移動平均,由于我們將其制作成線形,所以一般稱之為移動平均線,簡稱均線。
所謂的鏈式編程就是可以通過"點"語法,將需要執行的代碼塊連續的書寫下去,使得代碼簡單易讀,書寫方便。
第2節
響應式編程
響應式編程是一種面向數據流和變化傳播的編程范式。這意味著可以在編程語言中很方便地表達靜態或動態的數據流,而相關的計算模型會自動將變化的值通過數據流進行傳播。
第3節
自定義KVO
KVO 是 Objective-C 對觀察者設計模式的一種實現,另外一種是:通知機制(notification)
KVO提供一種機制,指定一個被觀察對象(例如A類),當對象某個屬性(例如A中的字符串name)發生更改時,對象會獲得通知,并作出相應處理
第4節
函數式編程
函數式編程是種編程方式,它將電腦運算視為函數的計算。函數編程語言重要的基礎是λ演算(lambda calculus),而且λ演算的函數可以接受函數當作輸入(參數)和輸出(返回值)。
第5節
RACReplaySubject
重復提供信號類,RACSubject的子類。
章節2
ReactiveCocoa初識
第1節
Block簡單使用
Block是什么?用一句話來概括就是帶有自動變量的匿名函數。
第2節
RACSignal類
RACSignal這個信號量類,他的基類是RACStream,從名字看出,"信號量類"繼承自"流類",所以RACSignal支持一些高級
第3節
RACDisposable
RACDisposable是頭文件對這個類的描述就是對訂閱關系的取消和相關資源的清理
第4節
RACSubject
信號提供者,既能發送信號,又能訂閱信號
第5節
RACSubjec簡單使用
1.創建信號[RACSubject subject],跟RACSiganl不一樣,創建信號時沒有block
2.訂閱信號 - (RACDisposable *)subscribeNext:(void (^)(id x))nextBlock
3.發送信號 sendNext:(id)value
章節3
ReactiveCocoa進階
第1節
RAC集合
在RAC中可以使用RACSequence,來進行對數組以及字典的快速便利
1、RAC對字典進行遍歷
2、RAC對數組進行遍歷
第2節
RAC應用場景
1.代替代理 主要通過RACSubject 和 rac_signalForSelector
2.代替KVO
3.監聽事件
4.代替通知
5.監聽文本框
6.處理界面有多次請求,需要都請求到數據時,才能展示界面
第3節
Timer
00:46:21
timer就是一個能在從現在開始的后面的某一個時刻或者周期性的執行我們指定的方法的對象。
第4節
登陸驗證碼發送的練習
視頻講述登陸驗證碼發送的練習
章節4
ReactiveCocoa進階2
第1節
rac_liftSelector
當需要請求多個數據,在所有數據請求完成之后才進行更新UI或者類似的事情的時候,可以用rac_liftSelector
第2節
RAC常用的宏
RAC常用宏
RACObserve(TARGET, KEYPATH)
KVO的簡化版本 相當于對TARGET中KEYPATH的值設置監聽,返回一個RACSignal
RAC(TARGET, ...)
第一個是需要設置屬性值的對象,第二個是屬性名
RAC宏允許直接把信號的輸出應用到對象的屬性上
每次信號產生一個next事件,傳遞過來的值都會應用到該屬性上
RACChannelTo(TARGET, ...)
RACChannelTo 用于雙向綁定
RACChannelTo(self, strin
第3節
RACMulticastConnection
用于當一個信號,被多次訂閱時,為了保證創建信號時,避免多次調用創建信號中的block,造成副作用,可以使用這個類處理。
第4節
RACCommand
RACCommand作為RAC比較重要的一個部分,其作用就是得到信號指令觸發動作執行,一般涉及到UI交互操作.
第5節
bind方法簡單使用
bind方法
假設想監聽文本框的內容,并且在每次輸出結果的時候,都在文本框的內容拼接一段文字“輸出:”
第6節
RAC bind內部實現(了解)
1.源信號調用bind,會重新創建一個綁定信號。
2.當綁定信號被訂閱,就會調用綁定信號中的didSubscribe,生成一個bindingBlock。
3.當源信號有內容發出,就會把內容傳遞到bindingBlock處理,調用bindingBlock(value,stop)
4.調用bindingBlock(value,stop),會返回一個內容處理完成的信號(RACReturnSignal)。
5.訂閱RACReturnSignal,就會拿到綁定信號的訂閱者,把處理完成的信號內容發送出來。
章節5
ReactiveCocoa進階3
第1節
RAC映射
映射就是給一個對象(可以是變量、物體、等等)起一個唯一的別名
第2節
RAC組合
RAC中常見的高級用法:concat組合,then,merge等
第3節
RAC忽略
RAC中常見的高級用法:
filter過濾信號,使用它可以獲取滿足條件的信號.
ignore:忽略完某些值的信號.
distinctUntilChanged: 當上一次的值和當前的值有明顯的變化就會發出信號,否則會被忽略掉。
take:從開始一共取N次的信號
switchToLatest:用于signalOfSignals(信號的信號),有時候信號也會發出信號,會在signalOfSignals中,獲取signalOfSignals發送的新信號
skip跳過幾個信號,不接受
第4節
登陸邏輯
步驟1: View層的數據通過C層給到VM層
步驟2: VM層進行邏輯處理
步驟3: View層顯示數據
第5節
RAC&&MVVM
iewController、遺失的網絡邏輯(沒有屬于它的位置)、較差的可測試性等因此也就會有維護性較強、耦合性很低的一種新架構MVVM (MVC 引申出得新的架構)的流行。
ReactiveCocoa 可以說是結合了函數式編程和響應式編程的框架,也可稱其為函數響應式編程(FRP)框架,強調一點,RAC雖然大的優點是提供了一個單一的、統一的方法去處理異步的行為,包括delegate方法,blocks回調,target-action機制,notifications和KVO.