我的iPhone應用程序在部署到設備時遇到問題,主要是因爲我迄今尚未處理內存警告(在模擬器中沒有問題,在我的開發機器上有4GB內存!)。沒有問題,我只需要更巧妙地處理這些警告(不那麼勉強......)。didReceiveMemoryWarning/viewDidUnload釋放了哪些內存?
問題是,運行時發佈的內存是什麼...只是視圖和子視圖?我懷疑這只是這些,但要確保運行時不會取消引用控制器中的任何對象或內存(即不在視圖中)。
問題:如果它只是視圖和子視圖,我是否需要在viewDidLoad中做任何特殊的操作來確保當視圖返回到內存時視圖顯示正確的數據,還是全部通過我的自動處理IBOutlet中-S?
我認爲要記住的一個關鍵是運行時不會爲您釋放任何東西。你可以清除的東西類型是任何你可以再次加載的數據(沒有大的打擊),圖像等目前沒有顯示等,但它取決於你的應用程序的上下文 還值得記住的是,通知是一個警告你的應用程序清理,並且你有責任擺脫你目前不需要的任何內存。 '警告'如果未被注意將導致操作系統終止您的應用程序。 – Kevin 2009-09-14 08:25:30
難道你不是指128MB和25-30MB? – mahboudz 2009-09-14 09:33:38
有道理,運行時不會在幕後發佈任何東西,我的應用程序只是被警告......但運行時/內存管理器正在卸載視圖。這不會節省一些內存嗎? 此外,我的應用程序在消耗7-8MB的內存後,正在接收和關閉這些警告。泄漏工具顯示一個泄漏,但只有32個字節,所以認爲不是一個嚴重的問題(儘管它讓我感到厭煩!)。 – mblackwell8 2009-09-14 21:30:21