天天看點

iPhone App開發實戰手冊學習筆記(2)之MVC模式1 前言2 詳述3 結語

1 前言

在IOS的Cocoa Touch提供的成千上萬個類中,大多數可以分為三類,而且其中的對象之間都有簡單和明确的互動方式。每個IOS應用程式都使用了一個簡單的設計模式:模型-視圖-控制器。簡稱MVC,今天我們就來學習一下IOS中的這個模式。

2 詳述

2.1 設計模式圖:

iPhone App開發實戰手冊學習筆記(2)之MVC模式1 前言2 詳述3 結語

2.2 三層介紹

2.2.1 視圖層(View)

IOS應用螢幕上出現的控件,如按鈕,滾動清單等,統稱為View。視圖知道如何展現資料,有些視圖還知道如何響應使用者輸入,例如UITextField。

在很多應用中我們還要建立自己的視圖用于顯示資料,比圖顯示股票表的标準控件,在IOS中是沒有提供的,我們需要拿出自己的解決方案。為應用建立獨一無二的樣子,但是都要基于UIView和UIController類來實作我們自己的視圖。

2.2.2 模型層(Model)

Model是應用程式的核心和靈魂,因為他負責管理資料。與視圖不同,模型不了解使用者目前執行的動作或者目前螢幕上顯示的内容,其唯一的功能是操作和處理在應用程式中的使用者資料。通常提供這些基本行為提供内部邏輯實作。

例如從Intet上下載下傳股票資料的應用程式,需要使用模型對象來存儲曆史價格。

有些模型對象可以跨應用程式工作,如聯系人和使用者預設設定的資料庫。還有一些其他的模型,如股票應用程式所用的模型,是專屬某個應用的。

在建立自己的模型時候常會用到Cocoa Touch内部實作的類,如:NSArray和NSDictionary類将資料存儲到有序表或者哈希表中。此外還有NSURLConnection和NSData這樣的類可以從網際網路擷取和存儲資料。

最後可以使用Core Data架構來操作SQLite資料庫(存儲和檢索對象)。

2.2.3 控制器層(Controller)

Controller要複雜一些,他充當着視圖和模型的中介,在模型中的資料變化時,負責更新視圖。同樣控制器會知道有使用者輸入,并相應的更新模型資料。

2.3 舉例MVC工作流程

(1) 使用者點選按鈕重新整理視圖,動作被發送到控制器。

(2) 控制器接着讓模型去加載新的資料。

(3) 模型打開一個網絡連接配接并開始下載下傳資料。

(4) 在資料加載完成後,模型會通知控制器新的資料已經準備好了。

(5) 控制器傳送行的資料到視圖中,使用者看到更新後的結果。

2.4 MVC好處

模型和視圖不直接互動,降低耦合度,減少依賴。

控制器對象往往負責初始化任務。模型和視圖在某些時候必須加載和初始化,控制器的核心角色使其成為了這項工作的必然選擇。

UIViewController類及其幾個子類主要負責執行這些基本的功能。這幾個類是在開始學習其他類之前必須要掌握的。

3 結語

以上是所有内容,希望對大家有所幫助。