我正在使用創建並存儲在我的應用程序委託中的ARC和NSCache。然後我通過應用程序委託從控制器調用它。 NSCache在從url加載圖像時存儲圖像,並且內存使用情況非常迅速。當我檢查分析器的真實內存使用情況時,我的應用程序的內存使用量甚至達到320 MB,但是在分配上它說它剛剛分配了20-30 MB。NSCache,removeAllObjects是否釋放內存使用?我正在使用ARC
在我的應用程序委託我設置緩存如下(這是伊娃):
cache = [[NSCache alloc] init];
[cache setCountLimit:100];
[cache setTotalCostLimit:1500000];
[cache setEvictsObjectsWithDiscardedContent:YES];
我實現了一個按鈕,NSCache實驗,當我點擊它,它要求:
- (IBAction)eraseCache:(id)sender {
[[appDelegate cache] removeAllObjects];
}
在剖析器上,使用的內存不會下降,但實際上它開始再次獲取圖像,所以我知道被刪除的對象。我如何使用ARC來隨意釋放這些內存使用情況?如何獲得緩存的大小以知道何時釋放它?
那麼,爲什麼按下我的「removeAllObjects」按鈕時,內存使用量不會下降?會發生什麼? – clopez 2012-07-27 16:28:36
它可能只是留在內存中,直到操作系統決定再次需要內存爲止。你的應用崩潰了嗎? – Dustin 2012-07-27 16:29:08
是的,你看了太多照片後會崩潰。 – clopez 2012-07-27 16:29:49