目前,我正在構建我的應用商店的第一個應用程序,因此我已閱讀here,應用程序應使用少於30 MB的RAM(iPhone 3G,iPhone 4)。我已經讀過,在某個時間點,iOS會開始通過隨機查殺並釋放背景應用程序中的聲音,圖像和其他資源來搜索資源。目前,我的應用程序使用約5MB的活動字節顯示在樂器中,但我對內存感到一些偏執:)當我的iPhone3G和iPhone4定位時,應用程序使用少於10MB的應用程序時,我是否安全?什麼樣的「殭屍」應用可能會從背景中返回?
的問題是,如果一個應用程序切換到後臺,然後的iOS如何資源的多少空閒的,直到最終殺死它?如果我的應用程序轉到後臺,然後將啓動100個或更多其他應用程序,那麼我的應用程序會發生什麼情況?我不相信RAM存儲器片對於我的應用程序是靜態的,因爲每個設備中的存儲器都是有限的。恕我直言,如果你開始循環打開一個新的應用程序,將其發送到後臺,打開另一個 - 然後設備的RAM將在某個時間點被完全使用。然後,理論上,如果你嘗試打開一個新的應用程序,那麼一些第一次打開的應用程序應該會被iOS殺死......
目前,我正在用純UIKit構建小遊戲,因此我使用了很多UIView和UIViewImage對象,我不知道如何處理這個理論情況。在進入後臺時,我的應用程序可能會在遊戲UIViewImages,菜單MVC指針等等中加載很多內容。我是否需要編寫一些reloadALL方法來重新加載遊戲的每一個安靜?如果設備內存被完全使用,iOS會殺死我的整個應用程序,一切都會好的。但如果iOS會在遊戲或菜單對象中釋放一些UIViewImage,那將是不可接受的。在這種情況下,我不知道我的應用可能是什麼樣的「殭屍」(我的應用在「復活」之後可以擁有多少條腿,手臂等)。請分享你的經驗和想法:)
謝謝。目前,我只知道處理內存警告的一種方法:主應用程序委託類中的「applicationDidReceiveMemoryWarning:」方法。你說「處理撲殺」是什麼意思?處理內存警告的其他方法是什麼? – Centurion
剔除只是一種說法「從內存中刪除」的方式。我會在應用程序委託,視圖控制器('didRecieveMemoryWarning')和'applicationDidResignActive'中處理內存警告。如果您正在尋找一種設計模式來簡化這一過程,請查看懶惰的實例。 –
感謝您的信息 – Centurion