2017.04.26(MVVM的進一步學習初步對ReactiveCocoa認識)
MVVM
在MVVM中有一個雙向繫結的技術,主要的功能是Modal變化時,ViewModel會自動更新,ViewModel變化時,View會自動更新,正在學習的RAC(ReactiveCocoa)可以實現資料的繫結。
V/C----------ViewModel---------Model
View(View/ViewController)持有ViewModel,即在View中會有一個ViewModel的屬性,ViewModel持有Model,在ViewModel中會有一個Model屬性,這種持有關係都是單向的,不可以違反,view也不能越過ViewModel持有model
Model-------ViewModel-----------View
Model變化時,ViewModel會自動更新,ViewModel變化時,View會自動更新
Model-----資料模型 負責保持資料和實現業務邏輯,Model中的屬性是資料型別的屬性,比如 NSString,BOOL,NSURL等,或本身已經是Model型別!暫時沒有看到集合類的屬性!
ViewModel-----檢視模型 檢視模型負責呈現邏輯!與檢視的顯示相關的一些屬性,比如:一組滾動圖片,可在VIewModel中建立一個NSSArray屬性,用來儲存圖片!主要是跟檢視相關的一個資料,比如:有一組按鈕要顯示在頁面上,可採用陣列。比如是否需要登陸啊,是否需要VC重新重新整理資料啊!ViewModel是一個放置使用者輸入驗證邏輯,檢視顯示邏輯,發起網路請求和其他各種各樣的程式碼的極好的地方
View -----檢視 向使用者展示並與使用者互動並實現UI邏輯。由View和ViewController組成
ReactiveCocoa的初步認識:(知識來自於http://www.jianshu.com/p/87ef6720a096,可以回頭再去看)
1.匯入
在匯入的時候要加上:use_frameworks!
然後 pod 'ReactiveCocoa', '~> 4.0.2 -alpha -1(看不清楚這裡是1還是L)'
2.認識一下最核心的類RACSignal
訊號類,一般表示將來有資料傳遞,只要有資料改變,訊號內部接收到資料,就會馬上發出資料。
注意:
訊號類(RACSiganl),只是表示當資料改變時,訊號內部會發出資料,它本身不具備傳送訊號的能力,而是交給內部一個訂閱者去發出。
預設一個訊號都是冷訊號,也就是值改變了,也不會觸發,只有訂閱了這個訊號,這個訊號才會變為熱訊號,值改變了才會觸發。
如何訂閱訊號:呼叫訊號RACSignal的subscribeNext就能訂閱。
相關文章
- Workerman學習筆記(一)初步認識筆記
- 對深度學習的認識深度學習
- MVVM With ReactiveCocoaMVVMReact
- 對vue原始碼的初步認識和理解Vue原始碼
- 前端學習 node 快速入門 系列 —— 初步認識 node前端
- Python學習 —— 初步認知Python
- Mybatis初步認識MyBatis
- Mybatis學習-初步認知與使用MyBatis
- 初步認識knockoutjsJS
- 快速冪的初步認識(Java)Java
- 進一步學習對話方塊(轉)
- Sql Server之旅——第十三站 對鎖的初步認識SQLServer
- 初步認識Apache IgniteApache
- Spring初步認識-(1)Spring
- [Redis 系列]redis 學習一,資料庫的演進及 Nosql 的初步認知Redis資料庫SQL
- MVVM 與 ReactiveCocoa 的運用(2)MVVMReact
- iOS筆記:進一步認識 ==、isEqual、hashiOS筆記
- oracle中三個引數的進一步認識Oracle
- 學習/認識CPU的GDT
- 初步認識 k8sK8S
- 初步認識ida軟體
- 網路報文初步認識
- OpenStack入門之初步認識
- 01MySQL的 庫、表初步認識MySql
- python執行緒池進一步認識Python執行緒
- ReactiveCocoa - swift 學習筆記(二)初識SignalReactSwift筆記
- 認識與學習bash
- 認識與學習 BASH
- Git的初步學習Git
- 初步認識tomcat伺服器Tomcat伺服器
- 【XMPP】Smack原始碼之初步認識Mac原始碼
- ReactiveCocoa學習筆記React筆記
- (學習筆記)python 對__init__的初步理解筆記Python
- 架構演化學習思考(4) --- IOC的學習認識架構
- 關於瀏覽器外掛的初步認識瀏覽器
- 初步學習VuexVue
- Mongoose初步學習Go
- 低程式碼 —— 初步認識 AppsmithAPPMIT