可以在应用程序运行时清空Caches目录吗?

时间:2013-01-16 10:05:44

标签: iphone ios ipad

我们将Core Data和其他对象保存在Caches目录中。如果它们被删除就没关系,但如果它们在应用程序运行时消失,它就会变得混乱。这实际上是否可以发生,或者我们可以假设一旦创建了一个文件,它将会在应用程序的其余部分运行时出现吗?

2 个答案:

答案 0 :(得分:1)

Table 1-3说:

  

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

那很好,然后: - )

答案 1 :(得分:-1)

  

NSCache类包含各种自动删除策略   确保它不会占用太多的系统内存。该   如果需要内存,系统会自动执行这些策略   其他应用。调用时,这些策略会删除一些项目   从缓存中,最小化其内存占用

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

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

您也可以自己逐出物品。将NSDiscardableContent协议实现添加到您的对象,并setEvictsObjectsWithDiscardedContent:添加到YES

但是当你的缓存更大时,当你的应用在后台运行时,缓存会驱逐一些对象(可能全部)