什么时候NSCachesDirectory文件被删除?

在什么情况下,iOS NSCachesDirectory中的文件被删除? 显然,删除并重新安装一个应用程序。 应用程序升级怎么样? 低磁盘空间条件呢? 还要别的吗?

我们的经验是,这个文件夹得到清除应用程序更新。 这将是很高兴知道这个文件夹是什么时候被清除的候选人。 文档描述这个文件夹为

可丢弃caching文件的位置(Library / Caches)

NSDocumentDirectory不会在应用程序更新时被清除,但要小心使用此文件夹,因为iOS 5现在使用此文件夹在iCloud中进行备份,并且如果使用此目录存储除用户生成的内容以外的任何内容,您的应用程序可能会被拒绝。

iOS应用程序更新期间不会删除库文件夹中的任何内容。

请检查以下文件从苹果提到:

当用户下载应用程序更新时,iTunes将更新安装到新的应用程序目录中。 然后将用户的数据文件从旧的安装移到新的应用程序目录,然后删除旧的安装。 在更新过程中, 保证以下目录中的文件被保留

APPLICATION_HOME> /文档

APPLICATION_HOME> /库

尽pipe其他用户目录中的文件也可能被移动,但更新后不应该依赖它们。

以下是此文档的链接: http : //developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TP40007072-CH8-SW10

希望这可以帮助。

NSCachesDirectory可以在内存不足的情况下被删除

在iOS 5.0及更高版本中,当系统磁盘空间非常less时,系统可能会在极less数情况下删除Caches目录。 这应用程序正在运行时不会发生。 但是,您应该知道,iTunes恢复不一定是caching目录可以被删除的唯一条件。

更多信息

如果您不希望删除文件,则必须将它们存储在“文档”目录中,但以下方式:

使用“不备份”属性来指定应保留在设备上的文件,即使在低存储情况下也是如此。 使用此属性的数据可以重新创build,但即使在低存储情况下也需要保持正常运行您的应用程序,或者因为客户希望在脱机使用期间可以使用该数据。 该属性适用于标记的文件,而不pipe它们在哪个目录中,包括Documents目录。 这些文件不会被清除,也不会被包含在用户的iCloud或iTunes备份中。 由于这些文件确实使用设备上的存储空间,因此您的应用程序负责定期监视和清除这些文件。

更多信息