簡單的概念就不多說了,都有所了解。沒見過也聽過。
在面試復習的時候,知道這是什么東西,但是當自己在使用時,出現了無從下手的感覺。
自己記錄自己要記得東西,一些具體實施的東西。
ViewModel是通過“綁定”方式與View交互的。
好處:
- 代碼復用
- 單元測試
綁定方式:
- 單向數據綁定
- 雙向數據綁定
channelTerminal - 集合數據綁定
- 執行過程綁定
- 錯誤處理
實施步驟:
創建base View中的屬性;
創建base ViewModel對應屬性的signal;
業務A Model的屬性創建(使用mantle進行映射);
A ViewModel 繼承baseViewModel,根據業務邏輯(需求),將數據加工并映射的ViewMode的UI屬性上。使用RAC的map對A Model的屬性進行映射。
網絡請求或者其他方式得到的數據(demoModel)。
對應得ViewModel對其獲取數據的方法進行綁定,根據不同業務的模型綁定不同的獲取方式。
viewController中將刷新數據方式與ViewModel中獲取數據的方法進行綁定。
ViewModel中的scenic屬性對外不暴露,所以不是一“可變”值,所以這里可以使用
[RACSignal return:scenic]
得到一個一次性的信號。如果對應的scenic屬性可能被外部修改,則應使用
RACObserve(self, scenic)
將其轉變為信號。