我正在開發一個應用程序,它使用UIScrollView來顯示基於搜索條件的圖像列表。使用一個按鈕,用戶可以加載更多的圖像。iPhone內存管理,使我的應用程序crashind多個設備
當在iPhone 4上進行測試時,ViewController會在約750張圖像上收到內存警告。在第二代iPod上進行測試時,會收到約150張圖像的內存警告。
我的理解是,當調用didReceiveMemoryWarning時,可以通過釋放對象來釋放內存,但不能保證從低內存中恢復。
我實施了didReceiveMemoryWarning並釋放基本上所有的對象。在儀器中,我看到內存使用回落到〜3MB。 iPod第一次達到內存限制一切順利,內存被釋放,應用程序恢復正常運行。然而,第二次,當didReceiveMemoryWarning被調用時,我可以看到已發佈的對象,但是應用程序仍然崩潰。
那麼,如何讓我的應用程序崩潰證明?我想確保運行應用程序的所有設備都可以加載儘可能多的圖像,但是我也希望確保應用程序不會崩潰。
我更喜歡應用程序永遠不會觸及didReceiveMemoryWarning並設置可顯示圖像數量的限制,但是如何確定每個可能的設備應該能夠加載的圖像數量?
此外,圖像的大小不能保證。在測試中,我在iPod上達到了這個任意數量的150,但是如果服務器在某個時間點的圖像是兩倍大?然後,該應用程序可能會崩潰在75個圖像。
任何消耗?