2010-08-11 29 views
1

我知道,在dealloc方法中釋放appdelegate的ivars可能是一個好習慣,但實際上,它是否有任何意義?在appdelegate的dealloc中釋放ivars是否有意義?

據我所知,當應用程序正在運行時,iPhone應用程序的appdelegate將存儲在內存中,並且在關閉時所有內存都將被釋放。

謝謝

回答

1

良好的內存管理應該是一種習慣。你必須考慮的時間和地點越多,犯錯的可能性就越大。這可能是足夠的理由來做到這一點。

翻轉問題 - 添加這些版本會有什麼損失?添加它們真的很費力嗎?

一些其他問題:

  • 會發生什麼,如果結構變化不大和應用程序的委託被提前釋放?
  • 如果其中一個被釋放的對象在其dealloc中進行額外的清理(例如保存其狀態)會怎麼樣?(暫時忽略這是個好主意)。
  • 生成時會產生噪音&分析?

就我個人而言,我做了我所有的應用程序委託發佈。你可能會認爲這不值得 - 但我希望我已經給你一些理由來考慮否則。

[更新]

因爲我已經在博客的替代存儲器管理技術可能相關 - 用(通過目標C++)smart pointers

+0

嗨,感謝您的回答),我不想說這是很難發佈它們,或者我不想這樣做)我只是在這裏問它,以瞭解人們對它的看法。你給了很好的理由)) 我想問,是不是可能提前發佈appdelegate?一個應用程序會不用它? – Burjua 2010-08-11 09:27:06

+0

應用程序代表沒有什麼神奇的。你當然可以釋放它,應用程序將繼續存在。當然,它不會執行應用程序委託處理的任何事情。 :)但我假設你是否釋放它,你打算讓它停止運作。 – andyvn22 2010-08-18 02:33:26

相關問題