初學者必看文檔:iPhone開發之路學習基礎

來源:互聯網
上載者:User

iPhone開發之路學習基礎是本文要介紹的內容,主要介紹了iphone中的代理類、iPhone的基本設計模式的內容,一起來看詳細內容介紹。

談談代理類(delegate class)

程式的代理對象是開發人員自己實現的對象,主要負責監聽程式的進階行為。代理機制用於避免繼承複合UIKit對象(例如UIApplication對象)。使用代理不需要子類繼承或重寫父類的方法,只要保持綜合物件不變,將需要添加或重寫的代碼放到代理對象中。當有事件發生,綜合物件會發送訊息給代理對象。 這有點像“鉤子”,通過這些“鉤子”來執行代碼和實現需要的行為。

程式代理負責處理很多重要的系統訊息沒一個iPhone程式都必須有。這個對象可以是任何實現了UIApplicationDelegate協議(protocol)的對象的執行個體,UIApplicationDelegate協議在程式生命週期內定義了很多“鉤子”和實現自訂行為的方法。儘管不要求開發人員實現所有這些方法,但是下面這些方式是必須實現的:

applicationDidFinishLaunching :開發人員可以用在這個方法中完成自訂的初始化任務,比如載入資料或使用者介面;也可以恢複程式上一次退出時的狀態。

applicationWillTerminate :開發人員可以在這個方法中將重要的資料和程式狀態儲存起來,也可以再這個方法中進行清理工作比如刪除臨時檔案。

iPhone的基本設計模式

UIKit架構的設計採用了很多和Cocoa程式類似的設計模式。理解這些設計模式對開發iPhone程式非常重要。因此在學習開發iPhone程式前,有必要瞭解一下iPhone開發中常用的設計模式

iPhone應用程式中的基本設計模式包括:

MVC模式(Model-View-Controller)

MVC模式是將你的代碼風格成獨立的功能模組的良好方法。模型(Model)部分定義了底層資料引擎並負責維護這些資料的整合;視圖(View)部分定義了使用者介面,它並不知道顯示在介面上的未經處理資料的具體含義;控制器(Controller)部分像是模型和視圖之間的一坐橋樑,負責更新它們。

代理(Delegation)

代理模式是一種可以不必通過繼承卻可以改變複合類行為的途徑。你可以將你的用於改變複合類行為代碼放到單獨的代理對象中有複合類來調用,而不必去繼承。複合類會調用代理對象中的方法從而給它一次運行自己代碼的機會來更改複合類的行為。

目標-行動(Target-Action)

控制項(Controls)採用目標-行動模式來提醒程式使用者的互動。當使用者按照預定義的方式與某個控制項互動時(例如按了某個按鈕),控制項會發送一個訊息(動作)給指定的對象(目標)。當收到訊息時,目標對象根據訊息採用相應的方式進行響應(例如更新程式狀態來響應按鈕點擊)。

管理記憶體模型(Managed Memory Model)

Objective-C採用"引用計數"的方式來決定合適清理對象所佔的記憶體。當對象初次建立時,它的引用計數為1。其他對象可以調用改對象的retain, release 或 autorelease方法增加或減少此組件的引用計數。當對象的引用計數為0時,Objective-C運行環境會清理掉該對象所佔的記憶體。

小結:iPhone開發之路學習基礎初學者必看文檔)的內容介紹完了,希望通過本文的學習能對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.