什么时候删除NSCachesDirectory中的文件?

时间:2011-07-29 22:57:25

标签: iphone ios caching filesystems

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

3 个答案:

答案 0 :(得分:10)

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

  

可丢弃缓存文件的位置(库/缓存)

NSDocumentDirectory不会在应用更新时清除,但要小心使用此文件夹,因为iOS 5现在使用此文件夹备份iCloud,如果您使用此目录存储其他任何内容,您的应用可能会被拒绝那么用户生成的内容。

答案 1 :(得分:9)

在App Update期间iOS不会删除Library文件夹中的任何内容。

请查看Apple提及的以下文档:

  

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

     

APPLICATION_HOME> /文件

     

APPLICATION_HOME> /库

     

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

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

希望这有帮助。

答案 2 :(得分:1)

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

  

在iOS 5.0及更高版本中,系统可能会删除Caches目录   系统磁盘空间非常低的极少数情况。这将   应用程序运行时永远不会发生。但是,你应该知道   iTunes恢复不一定是唯一的条件   缓存目录可以删除。

more info

如果您不想删除文件,则必须将它们存储在Documents目录中,但这样:

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

more info