當我們需要釋放一個對象時,可以在dealloc方法中或在viewController的ViewDidUnload中執行它?哪個更好?在哪裏釋放一個對象? dealloc或ViewDidUNload
我認爲viewDidUnload會做得更好,因爲一旦視圖控制器被卸載,對象將被釋放。並且在的dealloc情況下,從documentation
當一個應用程序終止, 對象可以不被髮送的dealloc 消息。因爲進程的內存 在退出時會自動清除,所以 只是爲了允許操作系統清理資源 比調用所有內存管理方法更高效。
對象在應用程序退出時可能不會發送dealloc消息。
所以我覺得如果對象早些時候發佈,會比推遲發佈時間更好,從而減少應用程序佔用的內存空間。
如果我的理解錯誤,請糾正我。
感謝和問候, 克里希南
嗨,Ole,謝謝你的回覆。現在我明白了,我應該在ViewDidUnload中發佈,我在ViewDIdLoad中創建了什麼。 有一個疑問,我有應該在-dealloc方法中釋放一些已經在-ViewDidUnload方法中發佈的東西。因爲當我的-dealloc被調用時,視圖應該被刪除,並且-viewDidUnload必須被調用。所以我想這會是代碼的重複。 請分享你的想法。謝謝 關心, 克里希南。 – Krishnan 2010-07-13 09:25:43
Apple在其所有示例代碼中都有此重複發佈模式,所以我建議您按照他們的示例進行操作。從文檔中不清楚'viewDidUnload'是否總是在'dealloc'之前被調用。在'viewDidUnload'中將變量設置爲'nil'以避免過度釋放對象也很重要。 – 2010-07-13 10:13:44
好的,謝謝Ole Begemann。我會使用蘋果公司的任何產品。 – Krishnan 2010-07-13 14:57:49