2017.04.26(MVVM的進一步學習初步對ReactiveCocoa認識)

weixin_34357887發表於2017-04-26

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組成


5690253-a64b60a3dadb4842.png

ReactiveCocoa的初步認識:(知識來自於http://www.jianshu.com/p/87ef6720a096,可以回頭再去看)

1.匯入

在匯入的時候要加上:use_frameworks!

 然後 pod 'ReactiveCocoa', '~> 4.0.2 -alpha -1(看不清楚這裡是1還是L)'

2.認識一下最核心的類RACSignal

訊號類,一般表示將來有資料傳遞,只要有資料改變,訊號內部接收到資料,就會馬上發出資料。

注意:

訊號類(RACSiganl),只是表示當資料改變時,訊號內部會發出資料,它本身不具備傳送訊號的能力,而是交給內部一個訂閱者去發出。

預設一個訊號都是冷訊號,也就是值改變了,也不會觸發,只有訂閱了這個訊號,這個訊號才會變為熱訊號,值改變了才會觸發。

如何訂閱訊號:呼叫訊號RACSignal的subscribeNext就能訂閱。


5690253-296a9c644ac543d4.jpeg

相關文章