不管建立iOS的哪種類型的應用程式,有幾個基本的設計模式和技術在寫代碼前必須你必須知道。在IOS,系統架構為應用程式提供了最重要的基礎設施,在大多數情況下,只能通過系統架構來調用底層的硬體。反過來,架構也使用了很多特別的設計模式,開發應用程式前,我們是假設你很熟悉這些設計模式的。要知道系統怎麼支援應用程式的,那就得先理解這些設計模式,這非常重要。
你必須知道的最重要的幾種設計模式:
Model-View-Controller -----這個設計模式是所以IOS程式的主要架構:模型-視圖-控制器(MVC)模式將您的代碼分割為幾個獨立的部分。模型部分定義應用程式的資料引擎,負責維護資料的完整性;視圖部分定義應用程式的使用者介面,對顯示在使用者介面上的資料出處則沒有清楚的認識;控制器部分則充當模型和控制器的橋樑,協助實現資料和顯示的更新。
Delegation----這個設計模式有助於一個對象的資料轉送到另一個對象:委託模式可以對複雜物件進行修改而不需要子類化。與子類化不同的是,您可以照常使用複雜物件,而將對其行為進行修改的定製代碼放在另一個對象中,這個對象就稱為委派物件。複雜物件需要在預先定義好的時點上調用委派物件的方法,使其有機會運行定製代碼。
delegation 通過protocol實現。
Target-action----這個設計模式用按鈕,等控制項把使用者的互動變成代碼,讓程式可以執行:控制項通過目標-動作模式將使用者的互動通知給您的應用程式。當使用者以預先定義好的方式(比如輕點一個按鍵)進行互動時,控制項就會將訊息(動作)發送給您指定的對象(目標)。接收到動作訊息後,目標對象就會以恰當的方式進行響應(比如在按動按鍵時更新應用程式的狀態)。
Block objects ----用blocks去實現回調和非同步
Sandboxing---所有的iOS應用程式是放在一個沙箱的,這是為了保護其他應用程式和系統的安全。沙箱的結構影響應用程式檔案的放置,資料的備份。還影響其他程式的一些功能。由於安全的原因,iPhone OS將每個應用程式(包括其喜好設定資訊和資料)限制在檔案系統的特定位置上。這個限制是安全特性的一部分,稱為應用程式的“沙箱”。沙箱是一組細粒度的控制,用於限制應用程式對檔案、喜好設定、網路資源、和硬體等的訪問。在iPhone OS中,應用程式和它的資料駐留在一個安全的地方,其它應用程式都不能進行訪問。在應用程式安裝之後,系統就通過計算得到一個不透明的標識,然後基於應用程式的根目錄和這個標識構建一個指嚮應用程式家目錄的路徑。因此,應用程式的家目錄具有如下結構: