2013-04-09 47 views
3

我使用默認的NSURLCache緩存我的iPhone應用程序中的圖像。 如果緩存滿了,我會嘗試緩存另一個圖像會發生什麼?如果NSURLCache已滿,會發生什麼情況?

它會不會緩存圖像?或者它將被替換爲最早的圖像緩存?

非常感謝

+0

它的行爲沒有在文檔中描述,但我期望蘋果公司擁有比FIFO更好的東西,例如,基於緩存命中計數器,緩存的響應權重可能會增加。內存/磁盤層的行爲很可能不同。 – 2013-04-09 14:07:19

+0

如果系統自行增加分配的緩存內存,那麼創建時聲明緩存大小的目的是什麼? 我確實相信這是一種FIFO,但我不確定,我的測試看起來不準確。我不知道如果我的緩存是50MB,並且它的填充滿足要求,我不知道會發生什麼 – Patz 2013-04-09 14:22:56

+0

簡單地說,沒有一種緩存應該提供任何類型的數據完整性,否則這是一個數據庫,而不是緩存,並且您需要處理它不同。 – 2013-04-09 14:30:15

回答

2

最大高速緩存可以初始化 initWithMemoryCapacity的影響:... diskCapacity:... diskPath:..] 新的文件將永遠被下載。 (除了大於最大內存容量時,則只會下載並不保存在緩存中) 如果達到最大緩存大小,則其他文件將被刪除。 沒有指定哪些文件將被刪除。 創建自己的NSUrlCache並自己處理它並不困難。 如果你想看到一個示例如何做到這一點,那麼看看https://github.com/evermeer/EVURLCache

相關問題