2013-04-09 98 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

相关问题