我有一個相當基礎的應用程序,我正在更新 - 作爲更新的一部分,我正在實施內存警告管理。iOS - 內存管理:這些內存在哪裏?
當內存警告方法被調用時,我釋放所有未使用的視圖控制器(並且這些視圖控制器依次釋放它們的任何對象)。據我所知,一切似乎都正常,沒有泄漏等。
什麼不工作:
使用「分配」的儀器,有大量的內存,當模擬硬件警告被稱爲沒有被釋放。以下是我在測試時所做的:
1 - 啓動應用程序 - 這是以下顯示的原始內存跳轉。
2 - 添加一個新的視圖控制器 - 這是第二個秒殺。
3 - 返回到主視圖控制器並模擬硬件內存警告 - 這是內存中(最小)的內存下降。此警告應完全釋放附加視圖控制器和關聯的對象。
雖然一切都被釋放,有大量的內存剩餘。據我所知,這就像iOS所做的緩存動畫等。然而,在真正的低內存情況下,這應該被釋放,並且不會停留在這裏,因爲這是大部分內存所在。
這個記憶如何被釋放 - 或者我做錯了什麼?任何指針將非常感謝 - 謝謝!
-
編輯:感謝到目前爲止所有的答案!雖然不幸的是我仍然無法解決問題。此外,記憶怪異似乎只發生在使用模態視圖控制器時。
我注意到,我實際上有一個背景加載方法,用於在應用程序啓動時調用的額外視圖控制器,以使事情順利進行。這表明內存中的第二次秒殺完全是由於其他視圖控制器 - 可能是動畫或其他東西?無論如何,問題仍然存在 - 這個額外的內存是用於什麼,我需要時如何釋放它?
我可能會創建一個小型項目,如果它會有所幫助,就會展現出行爲。謝謝:)
使用堆鏡頭 – justin