2013-09-24 15 views
0

我有一個使用UICollectionView開發的圖像庫。從畫廊中選擇多個圖像後按'完成'。所選圖像將顯示在UIScrollView(分頁開啓),這些是全屏圖像,可以向上/向下滾動以查看其他圖像。IOS:有關存活物體的內存問題和

1)在啓動應用程序時,是否有這麼多的活動對象和堆分配?

enter image description here

2)當我選擇並通過UIScrollView分配存儲器,用於圖像中的圖像滾動將添加到存儲器和不釋放。它會使應用程序崩潰。

以下是當我開始向上/向下滾動圖像時的屏幕。它會增加其他進程的內存消耗。

enter image description here

enter image description here

這是關於iPhone5的測試,使用活動監視器VM和實際內存往上走。

enter image description here

回答

0

分析內存非常棘手。實際使用的最好的工具是活動監視器,它會告訴你實際使用的內存有多少,與Allocations不同,它會告訴你比你需要知道的更多。

此外,最大內存量取決於每個設備。如果你真的想知道你是否使用了大量的內存,只需在設備上進行測試即可。你通常有很大的靈活性,內部的UIImage類會爲你緩存和清除緩存。

+0

看到我的編輯,我使用了活動監視器,它也顯示增加的內存。 – Chanuka

1

爲什麼不嘗試一次加載圖像3,而不是一次加載整個圖像集。

我的意思是你可以設置你的滾動視圖數組並添加儘可能多的[NSNull null]對象作爲要顯示的圖像的數量。然後,在特定情況下,該陣列中只有3個圖像,滾動後刪除不必要的圖像或將其替換爲[NSNull null]對象。