前注:本文章未完成,可是考慮到目前的iOS版本比起當時我寫這個筆記的時候已經有很大變化了,因此不少內容可能不一樣。
本文地址:https://segmentfault.com/a/11...segmentfault
用戶程序裏面包含了一個標準的main()函數,這個函數裏面的代碼應該是最小程度地使用,要麼就不改。
main()函數作的事情有兩個:
一、建立自動釋放池(autoreleasepool)
二、調用UIApplicationMain()設計模式
每一個應用程序中,必需要有這些delegate方法。參見UIApplicationDelegate文檔。
這個delegate對象負責處理幾個關鍵的系統事件,很大程度上,用戶程序的入口甚至能夠說就是從這些delegate開始的。框架
好比一個觸摸動做,數據傳遞過程爲:
觸摸數據 ——封裝於——> UIEvent ——包含——> UITouch函數
UIApplication對象用一個處理觸摸事件的輸入原來配置主循環(main runloop)
應用程序 ——派發事件——> UIWindow對象 ——傳送事件——> 第一響應者
第一響應者(first responder)是什麼?通常就是各類UIApplication、UIWindows、UIView或其派生類。oop
iOS開發使用MVC模式,分別是模型 - 視圖 - 控制器spa
委託設計
目標 - 動做:控件將用戶預先定義好的「動做」發給「控件」處理對象
內存模型:引用計數blog
在iOS中,每次只能有一個前臺程序在運行。點擊應用程序圖標時,程序啓動,並應該快速初始化。
點擊Home時,iOS通知應用程序推出,此時應該儘快保存須要保存的數據,不然5秒內整個程序可能會被終止(注:如今就不必定了)
設計應用程的時候,要讓用戶看起來以爲好像程序正在後臺運行同樣。生命週期
一個典型的App程序包(好比命名爲SomeApp)的內容爲:
(待續……)