2013-01-16 47 views
1

我有一個關於自動釋放池和內存釋放的問題,我正在開發一個應用程序。如果有人需要查看我可以發佈的代碼。自動釋放池中的內存不會釋放,直到內存警告或應用程序進入背景

首先,我在這個應用程序中使用ARC,現在基本上我在啓動時分配了一點內存(用於介紹動畫的圖像),並且它們所佔用的內存似乎不正確直到我收到內存警告出於某種原因,或者如果我輸入背景並重新輸入應用程序的前景。

我一直在監視在代碼以及儀器中分配的內存量,所以似乎這個問題不是一些誤報。我知道一個事實,我正確地處理圖像內存,因爲我清楚地將UIImageView.animationImages屬性設置爲nil,並將UIImageView設置爲nil,並在動畫完成後從內存釋放它的父視圖控制器。基本上,它所做的所有事情都被設置爲零或者從超級視圖中刪除,以確保ARC知道它應該被釋放。

有沒有什麼辦法可以清除這個自動釋放的內存池,類似於進入應用程序背景或接收內存警告的結果?

回答

0

想通了,我分配給我的介紹動畫的UIImages正在通過imageNamed:方法緩存,因此即使在自動釋放一段時間後也會保留。

要解決這個問題,我使用imageWithContentsOfFile:不緩存圖像的方法。