2009-06-24 62 views
3

我正在閱讀用於iPhone開發的泄漏檢測工具,並在我進入一個更大,更難調試的項目之前故意插入並在我的小程序中查找內存泄漏。iPhone OS在退出時是否回收用戶空間內存?

這是沒有問題的識別內存泄漏,也就是說,發生在像應對觸摸事件經常調用的方法。泄漏儀器最終將識別未聲明的虛擬內存。

我更擔心的是用於退出整個系統中的代碼泄漏。一旦我完全退出我的應用程序,是否有人擔心某些事情未被釋放,或者iPhone OS是否自動回收所有用戶內存?

這個問題是讀了不少文件,並在不知道任何東西后我不清楚,我認爲它必須努力像其他的操作系統在這方面,只是收回所有的用戶空間。如果是這樣,我不會很好地清理定期泄漏,所以我的應用程序可以運行任意時間與有限的內存,然後不用擔心太多,一切都在退出時釋放?

而且,如果是重要的退出,因爲它不會被操作系統回收之前釋放的一切,也可把我的應用程序的好方法活在出口檢驗後的樂器嗎?當我在模擬器或設備上按Home鍵時,我是否已經失去了檢測退出時間泄漏的機會?

回答

3

是的,結束你的程序將釋放它所擁有的每一個內存位。任何其他的東西都是一個操作系統錯誤,你不太可能會發現這種情況。

編輯:我敢打賭,你問這個是因爲文件說,「iPhone不支持垃圾回收。」但是,該聲明不適用於程序結束時釋放內存。這只是談論你在程序運行時如何處理釋放自己的內存。

+0

我仍然覺得它是一個有用的編程約定,就像系統在你之後不會清理一樣,並且確保你在你的應用程序出口時正確處理所有釋放。這就像在停車場使用轉向燈一樣,它強化了一個好習慣。 – 2009-06-24 16:35:11

+0

我打算這樣做,但如果我有退出漏洞並且無法弄清楚如何找到並清理它們,Apple會拒絕我的應用程序?但是我相信操作系統應該被清理乾淨 - 我無法在他們的iPhone文檔迷宮中找到明確的聲明。感謝大家! – 2009-06-24 17:03:37

0

的iPhone應該使用虛擬內存,所以(理論上反正)操作系統將清理一切行動時,一個漏水的應用程序退出。

相關問題