1 函數語言程式設計,鏈式程式設計定義
-
準備工作:自定義一個基類重寫description 列印model 的時候能列印所有的屬性
-
OC 中應用函數語言程式設計,方法後面拼接()要能繼續執行下去,所有要有返回值,使用block,返回值式自己。
-
方法的實現:
-
直接返回return,簡寫如下:
2.swift是適合函數語言程式設計 ,方法後面帶有(),如果需要執行下去,加上返回值是自己的就可以鏈式程式設計下去。
-
形式
-
實現
3.響應式程式設計RAC - 整合注意點
-
選擇框架
- 純 swift 專案,繼續使用 ReactiveCocoa 。但是 RAC 依賴於 ReactiveSwift ,等於你引入了兩個庫。
- 純 OC 專案,需要使用 ReactiveObjC 。這個庫裡面包含原來 RAC 2的全部程式碼。
- 專案是 swift 和 OC 混編,需要同時引用 ReactiveCocoa 和 ReactiveObjCBridge 。但是 ReactiveObjCBridge 依賴於 ReactiveObjC ,所以你就等於引入了 4 個庫。
-
整合環境配置
-
如果專案不是純OC專案,那麼編輯Podfile檔案新增了pod 'ReactiveCocoa', '~> 5.0.3'以後一定別忘了新增一行use_frameworks!用於生成動態連結庫。
-
Xcode8匯入時因為Swift2.3與Swift3.0的關係,匯入後,無法成功編譯程式,工程會彈出一個選擇框,最好選第一個later,跳過swift編譯。之後修改pod專案的Bulid Settings裡搜swift_version之後把Swift Language Version變成3.0在使用command+shift+k進行clear下專案就OK了。
-
4.RAC應用
-
iOS中的事件
- 目標(方法),代理,通知,KVO,時鐘,網路
rac_signalForControlEvents
targetrac_signalForSelector
代理rac_addObserverForName
通知rac_valuesAndChangesForKeyPath
KVO
-
建立訊號
RACSignal
createSignal
-
訊號,
RACSignal
-
狀態:
- 熱訊號:有訂閱者,一旦訂閱資訊,就會執行
- 冷訊號 只是定義,沒有訂閱,只是訊號物件,不會工作
5.訂閱者: 檢視控制器需要知道載入資料的情況
-
訂閱三種型別,next ID型別,error:出錯處理,completion表示訊號完成
-
載入過後訂閱
6.RAC系統學習
- ReactiveCocoa常見類有哪些?
- RACSignal:表示有資料傳遞的時候
- RACDisposable:取消訂閱訊號
- RACSubscriber:訂閱者,傳送資料