2009-01-19 49 views
5

任何人都可以在這裏指出正確的方向。我想在應用程序收到內存警告時作出響應,(我想知道如何響應此通知)。另外,我可以用我的應用程序連接多少內存?iPhone開發 - iphone應用程序的內存限制

任何文章或書籍參考將是偉大的。謝謝。

回答

7

如果您的應用獲得內存警告(例如在您的視圖控制器的didReceiveMemoryWarning方法中),則需要釋放任何非關鍵數據。應該拋棄任何你正在使用緩存的或者可以重新生成的東西。例如,如果您的應用程序嘎吱嘎吱一些數字並將結果存儲在一個大數組中,那麼如果您不在使用該數組,則應該釋放它。然後,當你再次需要時重新生成它。

多一點信息是在這裏: Observing Low-Memory Warnings

+0

鏈接移動... https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ApplicationEnvironment/chapter_3_section_5.html – estobbart 2013-01-25 07:36:42

4

我已經非正式地聽到當您的應用程序達到22 MB時發出警告。 (包含任何分配的內存 - iPhone將所有內容保存在物理內存中,不會分配給任何其他存儲設備。)鑑於手機只有128 MB的總內存,這似乎是合理的。

該限制不包括共享系統庫(如Objective-C運行時)使用的內存。雖然我不完全確定這一點,但我並不認爲WebKit的內存使用被包含在UIWebView組件中,因爲我相信WebKit總是被加載(但是,不是100%肯定)。

當您達到此限制時,最好的辦法是免費獲取任何您可以輕鬆地從輸入文件(如視圖,圖像和緩存數據)重新生成或重新讀取的內容。

+0

是啊,這似乎快要根據我的經驗權利。儘管沒有關於Safari使用它自己的記憶的線索。 – schwa 2009-01-19 19:52:04