init方法
在init方法中執行個體化必要的對象(遵從LazyLoad思想)
init方法中初始化ViewController本身
loadView方法
當view需要被展示而它卻是nil時,viewController會調用該方法。不要直接調用該方法。
如果手工維護views,必須重載重寫該方法
如果使用IB維護views,必須不能重載重寫該方法
loadView和IB構建view
你在控制器中實現了loadView方法,那麼你可能會在應用啟動並執行某個時候被記憶體管理控制調用。 如果裝置記憶體不足的時候, view 控制器會收到didReceiveMemoryWarning的訊息。 預設的實現是檢查當前控制器的view是否在使用。 如果它的view不在當前正在使用的view hierarchy裡面,且你的控制器實現了loadView方法,那麼這個view將被release, loadView方法將被再次調用來建立一個新的view。
viewDidLoad方法
viewDidLoad 此方法只有當view從nib檔案初始化的時候才被調用。
重載重寫該方法以進一步定製view
在iPhone OS 3.0及之後的版本中,還應該重載重寫viewDidUnload來釋放對view的任何索引
viewDidLoad後調用資料Model
viewDidUnload方法
當系統記憶體吃緊的時候會調用該方法(註:viewController沒有被dealloc)
記憶體吃緊時,在iPhone OS 3.0之前didReceiveMemoryWarning是釋放無用記憶體的唯一方式,但是OS 3.0及以後viewDidUnload方法是更好的方式
在該方法中將所有IBOutlet(無論是property還是執行個體變數)置為nil(系統release view時已經將其release掉了)
在該方法中釋放其他與view有關的對象、其他在運行時建立(但非系統必須)的對象、在viewDidLoad中被建立的對象、快取資料等 release對象後,將對象置為nil(IBOutlet只需要將其置為nil,系統release view時已經將其release掉了)
一般認為viewDidUnload是viewDidLoad的鏡像,因為當view被重新請求時,viewDidLoad還會重新被執行
viewDidUnload中被release的對象必須是很容易被重新建立的對象(比如在viewDidLoad或其他方法中建立的對象),不要release使用者資料或其他很難被重新建立的對象
dealloc方法
viewDidUnload和dealloc方法沒有關聯,dealloc還是繼續做它該做的事情
* 根據其它資料 dealloc 方法僅在當前對象的引用記數為0時才會觸發運行!