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