在什么情况下,iOS NSCachesDirectory中的文件会被删除?显然,删除并重新安装应用程序。申请升级怎么样?低磁盘空间条件怎么样?还有什么吗?
答案 0 :(得分:10)
我们的经验是此文件夹在应用更新时被清除。很高兴知道这个文件夹到底是什么时候被清除的候选人。文档将此文件夹描述为
可丢弃缓存文件的位置(库/缓存)
NSDocumentDirectory
不会在应用更新时清除,但要小心使用此文件夹,因为iOS 5现在使用此文件夹备份iCloud,如果您使用此目录存储其他任何内容,您的应用可能会被拒绝那么用户生成的内容。
答案 1 :(得分:9)
在App Update期间iOS不会删除Library文件夹中的任何内容。
请查看Apple提及的以下文档:
当用户下载应用更新时,iTunes会将更新安装在新的应用目录中。然后,在删除旧安装之前,它会将用户的数据文件从旧安装移动到新的app目录。以下目录中的文件保证在更新过程中保留:
APPLICATION_HOME> /文件
APPLICATION_HOME> /库
虽然其他用户目录中的文件也可能会被移动,但您不应该在更新后依赖它们。
希望这有帮助。
答案 2 :(得分:1)
在内存不足的情况下可以删除NSCachesDirectory
在iOS 5.0及更高版本中,系统可能会删除Caches目录 系统磁盘空间非常低的极少数情况。这将 应用程序运行时永远不会发生。但是,你应该知道 iTunes恢复不一定是唯一的条件 缓存目录可以删除。
如果您不想删除文件,则必须将它们存储在Documents目录中,但这样:
使用“不备份”属性来指定应保留在设备上的文件,即使在低存储情况下也是如此。将此属性与可以重新创建的数据一起使用,但即使在低存储情况下也需要保留,以使应用程序正常运行,或者因为客户希望在脱机使用期间可以使用该数据。此属性适用于标记文件,无论它们位于何种目录中,包括Documents目录。这些文件不会被清除,也不会包含在用户的iCloud或iTunes备份中。由于这些文件确实使用设备上的存储空间,因此您的应用程序负责定期监视和清除这些文件。