讓不懂編程的人愛上iPhone開發系列2 iOS12+Swift4.2版-Checklists-10
說明:
本系列教程改編自raywenderlich.com中的iOS Apprentice系列,有需要的童鞋請移步到這裡購買英文版原教程:https://store.raywenderlich.com/products/ios-apprentice
歡迎繼續我們的學習。
在之前的內容中,我們已經為這款事務管理軟體創建了一個表視圖,還顯示出了幾行內容,然後增加了勾選和取消勾選的功能。
不過到目前為止,這個表視圖裡面的數據都是硬塞進去的「偽」數據。對於真正的事務管理應用來說,這樣的做法顯然是不科學的~畢竟,或許大家根本就不喜歡看賀歲片電影,而是想做點別的什麼事情。
為了更好的保存、管理和顯示待辦信息,我們需要創建一個數據模型,來更好的存取相關信息。
從這一課開始,我們會帶領大家來學習如何實現數據模型了。
而為了完成這個偉大光榮的任務,我們需要學習三方面的知識:
1.MVC(Model-View-Controller)
這是iOS開發中必須掌握的核心理念~
2.數據模型
我們要學習如何創建一個真正意義上的數據模型
3.優化代碼
秉承蘋果一貫的風格,從內到外都要美。當完成了功能之後,我們需要簡化現有的代碼,方便以後(或者後續接盤的人)閱讀、理解和維護。
而首先我們要學習的就是Model-View-Controller。
Model-View-Controller(模型-視圖-控制器)
傳說中NB?比的MVC再次出現了。任何?個iOS開發教程都不能略過對Model-View-Controller,也 就是MVC的解釋說明。在iOS開發中,MVC是三大基礎模式之?。實際上我們已經領教過另外兩種模式的厲害了,
它們分別是:delegation(代理/委託),也就是讓某個對象代表另一個對象做一些 事情。
然後是target-action,通過這種?方式可以讓交互事件(?如觸碰)和特定的動作?法關聯在
?起。
而通過MVC模式,可以將應?中的所有對象分成三大類:
1.Model 對象,也就是數據模型。
model對象中包含了應用中的數據以及對數據的任何處理。假如我們要開發一款菜譜應用,那麼model對象顯然就包含了所有的菜譜。
在遊戲中,model對象可能是不同關卡的設計,玩家的得分和怪物所在的位置。對數據模型對象的操作有時候被萬惡的術語黨 稱為」業務規則「或者」領域邏輯「,」業務邏輯「神馬的。
不要被這些名詞嚇倒,Don』t panic不管這些 名詞怎麼叫,你只需要知道它們的本質是關於如何處理數據就好了。 在我們這個事務管理軟體應?中,事務清單和代辦事務構成了數據模型。
2. View對象,也就是視圖對象。
視圖對象其實就是我們應?中的所有可視元素,?如圖片,按鈕, 標籤,?本框等等。在遊戲中視圖對象就是遊戲世界的視覺呈現,?如怪物攻擊的動畫,?條法條等等。一個視圖對象可以繪製?身,同時對?戶輸?做出響應,但它通常不會直接處理應?中的邏輯。很多視圖對象(?如UITableView)可以在不同類型的應?中重用,就是因為它們沒有和某種特定的數據模型綁定在?起。
3.Controller對象。在iOS開發中將其稱為視圖控制器,它的作?是負責將數據模型對象和視圖對象關聯在?起。視圖控制器會監聽用戶對視圖的觸碰事件,然後讓數據模型對象做出相應的處理,並根據所處理的結果來更新視圖的顯示。
在iOS中,我們把這種controller對象稱為」視圖控制器「,視圖控制器是MVC模式中的主宰?量。
下?的這個圖顯示了MVC中的不同類型對象是如何相同作?的。
TAG:iOS | 蘋果公司(AppleInc.) | iPhone |