1

我们将核心数据和其他对象保存在 Caches 目录中。如果它们被删除没关系,但如果它们在应用程序运行时消失,它就会变得混乱。这真的会发生吗,或者我们可以假设一旦创建了一个文件,它就会在应用程序的其余运行时存在?

4

2 回答 2

1

表 1-3说:

...当系统磁盘空间非常低时,系统可能会在极少数情况下删除 Caches 目录。这在应用程序运行时永远不会发生。

那很好,然后:-)

于 2013-01-16T10:18:29.217 回答
-1

NSCache 类包含各种自动删除策略,确保它不会使用过多的系统内存。如果其他应用程序需要内存,系统会自动执行这些策略。调用时,这些策略会从缓存中删除一些项目,从而最大限度地减少其内存占用

你可以看到文档:http: //developer.apple.com/library/mac/#technotes/CachingPurgeableMemory/Introduction/Introduction.html

缓存有一个成本限制,如果您的文件大于阈值,它将自动删除。但是您可以使用countLimit,totalCostLimit属性来控制它们,并且可以使用成本添加对象,请查看setObject:forKey:cost:.

您也可以自己驱逐对象。将 NSDiscardableContent 协议实现添加到您的对象setEvictsObjectsWithDiscardedContent:YES.

但是当您的缓存较大时,当您的应用程序在后台运行时,缓存将驱逐一些对象(可能全部)

于 2013-01-16T10:18:34.083 回答