在iOS 3.0 viewDidUnload
和viewDidLoad
被引入。
如果你看看他們的描述,你會發現:
viewDidLoad中的視圖控制器加載其相關的意見到內存後調用。無論視圖是存儲在nib文件中還是以編程方式在loadView方法中創建,都會調用此方法。
這意味着,無論當你的視圖是從筆尖加載,或當您創建程序(和框架,在正確的時刻loadView
呼喚你),你有一個點,你可以訪問您的新的視圖,並完成其初始化,如添加子視圖,或任何你需要的。
的對口viewDidLoad
是viewDidUnload
,你可以覆蓋這樣的:
-(void)viewDidUnload {
<do all the necessary clean up>
[super viewDidUnload];
}
所以,你有清理一個單點,而且你不需要做任何具體的清理didReceiveMemoryWarning
,因爲viewDidUnload
是在解除分配視圖時調用的,也就是說,在由於didReceiveMemoryWarning
而解除分配時也會調用viewDidUnload
。
這與之前發生在iOS 3.0中的情況有所不同,您必須提出自己的方案才能完成初始化和清理工作,而且不支持框架,即didReceiveMemoryWarning
導致視圖被釋放,您的清理方法不會自動調用,您必須複製清理代碼(並明確在didReceiveMemoryWarning
中進行清理)。
哦,對!哇,我怎麼沒有想到檢查viewDidLoad/viewDidUnload是否在3.0之前?我想這似乎是他們對整個過程非常重要,以至於他們一直在那裏一直回到2.0。但顯然不是,嘿。雖然他們現在在那裏的好處是,3.0版本之前的清理方法確實聽起來有點笨拙。太感謝了。 – 2011-05-21 08:38:15