2011-04-21 50 views
0

我現在遇到了很大的麻煩,我的iPhone應用程序由於內存泄漏而一次又一次地終止,並且我無法判斷那些在哪裏泄漏。告訴我可以採取哪些措施來解決此問題。內存泄漏破壞我的應用程序?

謝謝

回答

3

我想你在這裏混淆術語。內存泄漏是當你完成後不釋放對象。

漏洞不會直接導致崩潰。如果由於不釋放大量對象而導致內存不足,泄漏可能會間接導致崩潰。但是,如果模擬器中發生崩潰,則幾乎肯定不是這種情況(模擬器具有比設備更多的可用內存)。正如丹尼爾所說,你可以使用儀器工具找出泄漏的事情。

另一個好方法是使用XCode靜態分析器 - 您可以讓它分析代碼並檢測最常見的泄漏。

現在,如果你的應用程序崩潰和它的不是由於內存泄漏(你就可以講這個,因爲你有內存警告輸出到控制檯),那麼很有可能你的問題不是泄漏。也許這是一個不好的訪問(你是超過釋放),在這種情況下,你的儀器泄漏工具不會幫助你。

0

如果您需要查找泄漏和碰撞來源。你可以嘗試這些

  1. 嘗試從儀器找到儘可能多的泄漏可能和修復NSZombieEnabled
  2. 設置爲可執行文件的參數和調試應用程序崩潰
  3. 改變你所有的自動釋放對象使用的alloc初始化不亞於可能。

- 最糟糕的是,如果在嘗試所有上述三種情況後仍然不斷崩潰。你在線程中編寫代碼的內存密集型模塊並清理該線程。我通常注意到線程完成時內存足跡更清晰。這只是我的看法,但是你應該這樣做。

+0

感謝您回覆所有我正在處理的建議.. – rptwsthi 2011-04-22 06:20:40

0

您也可以在XCode本身構建+分析您的應用程序(Cmd + Shft + A或產品>分析)。它會告訴你更明顯的泄漏。