我想知道viewDidUnload
和dealloc
是否是總是在UIViewController拆卸過程中連續調用。是否可以在我的視圖控制器上調用dealloc
,而不是先調用viewDidUnload
?viewDidUnload和dealloc在拆除UIViewController時總是被調用嗎?
在這兩種情況下,如果我在兩種方法中安全地釋放屬性並保留引用,那麼調用這兩種方法都不會成爲問題 - 但我想知道是否有人確實知道或可以闡明拆卸過程。
2012更新:它的方便需要注意的是,如同iOS 6的viewDidUnload
已被棄用,如果需要的話在didReceiveMemoryWarning
應具有手動視圖拆卸所取代。
在新的UIView/UIViewContoller和新的行爲的一個很好的文章,它是在joe conway blog
我想你的意思是'viewDidUnload'當你在你的答案中說'viewDidLoad'。當內存不足時,不會調用viewDidLoad,但當視圖出現在屏幕上時(在viewWillAppear之前)。當存在低內存警告時調用'viewDidUnload'。 – 2010-07-10 17:26:56
這應該是正確的答案。這讓我今天陷入麻煩。 – asandroq 2010-08-24 20:18:40
好像可以在viewDidUnload裏面做self.whatever = nil,然後在dealloc裏調用[_whatever release]。這樣,如果viewDidUnload被首先調用,那麼該項目不會被dealloc超額釋放,因爲它將被刪除,並且釋放消息在發送到nil時會消失。任何人都可以確認嗎? – jpswain 2011-11-30 04:57:55