applicationDidReceiveMemoryWarning
和didReceiveMemoryWarning
有什麼區別?處理這些警告的最佳方法是什麼?applicationDidReceiveMemoryWarning和didReceiveMemoryWarning有什麼區別?
5
A
回答
8
您應該在所有視圖上使用「延遲加載」數據。 例如,如果要在表格視圖中顯示數據列表,則當視圖控制器收到didReceiveMemoryWarning
並將數據指針設置爲零時應釋放數據。
大多數Apple示例代碼都強調這種懶惰加載技術。
applicationDidReceiveMemoryWarning
是發送到您的AppDelegate類似的消息。您應該釋放您存儲在AppDelegate中的不需要的全局數據。
一個典型的例子是Safari。在Safari中打開2-3個選項卡(在iPhone模擬器上)。讓所有選項卡加載網頁內容。嘗試切換不同的標籤。您應該注意到內容仍然存在,並且沒有被刷新。現在從菜單中關閉「模擬內存警告」。現在,當您切換到其他選項卡時,Safari將再次獲取內容。內部發生的事情是,網址被記住了,但是整個網頁內容都是在didReceiveMemoryWarning
方法中發佈的。
你也應該在你的應用中實現類似的機制。
相關問題
- 1. 何時調用了didReceiveMemoryWarning和applicationDidReceiveMemoryWarning?
- 2. 有什麼區別`和$(Bash中有什麼區別?
- 3. 有什麼區別? :和||
- 4. &&和||有什麼區別?
- 5. 「/」和「/ *」有什麼區別?
- 6. 有什麼區別:。!和:r!?
- 7. ==和===有什麼區別?
- 8. Appender和〜有什麼區別?
- 9. $ @和$ *有什麼區別?
- 10. is和=有什麼區別?
- 11. #.00和#。##有什麼區別?
- 12. `==`和`is`有什麼區別?
- 13. '=='和'==='有什麼區別?
- 14. /和/#/有什麼區別?
- 15. | 0和~~有什麼區別?
- 16. `&`和`ref`有什麼區別?
- 17. ==和===有什麼區別?
- 18. ==和===有什麼區別?
- 19. `{}`和`[]`有什麼區別?
- 20. JavaScript和=== ===有什麼區別?
- 21. difftime和' - '有什麼區別?
- 22. =和==有什麼區別?
- 23. xtype和別名有什麼區別?
- 24. Mixpanel:識別()和people.identify()有什麼區別?
- 25. 有什麼區別
- 26. 有什麼區別
- 27. 有什麼區別?
- 28. 有什麼區別?
- 29. 有什麼區別?
- 30. 有什麼區別