【发布时间】:2011-10-16 07:54:54
【问题描述】:
iOS NSCachesDirectory 中的文件在什么情况下会被删除?显然,删除并重新安装应用程序。应用升级呢?磁盘空间不足怎么办?还有什么?
【问题讨论】:
-
仅供参考:我认为我的错误是别的东西,所以 AFAIK 对上述问题的回答是“在应用程序删除之外,从不”。
标签: iphone ios caching filesystems
iOS NSCachesDirectory 中的文件在什么情况下会被删除?显然,删除并重新安装应用程序。应用升级呢?磁盘空间不足怎么办?还有什么?
【问题讨论】:
标签: iphone ios caching filesystems
我们的经验是,此文件夹会在应用更新时被清除。很高兴知道这个文件夹究竟什么时候可以被清除。文档将此文件夹描述为
可丢弃缓存文件的位置(库/缓存)
NSDocumentDirectory 不会在应用程序更新时被清除,但请小心使用此文件夹,因为 iOS 5 现在使用此文件夹在 iCloud 中备份,如果您使用此目录存储用户以外的任何内容,您的应用程序可能会被拒绝生成的内容。
【讨论】:
App 更新期间 iOS 不会删除 Library 文件夹中的任何内容。
请查看 Apple 提供的以下文档,其中提到:
当用户下载应用更新时,iTunes 会在新的应用目录中安装更新。然后它将用户的数据文件从旧安装移动到新的应用程序目录,然后再删除旧安装。以下目录中的文件保证在更新过程中保留:
Application_Home>/文档
Application_Home>/库
虽然其他用户目录中的文件也可能被移动,但您不应依赖它们在更新后存在。
希望这会有所帮助。
【讨论】:
NSCachesDirectory 可以在内存不足的情况下删除
在 iOS 5.0 及更高版本上,系统可能会删除 Caches 目录 很少有系统磁盘空间非常低的情况。这会 应用程序运行时永远不会发生。但是,您应该知道, iTunes 恢复不一定是唯一的条件 可以擦除缓存目录。
如果您不想删除您的文件,您必须将它们存储在 Documents 目录中,但是这样:
使用“不备份”属性指定应保留在设备上的文件,即使在存储空间不足的情况下也是如此。将此属性用于可以重新创建但即使在存储空间不足的情况下也需要保留的数据,以便您的应用程序正常运行,或者因为客户希望它在离线使用期间可用。此属性适用于标记的文件,无论它们位于哪个目录,包括 Documents 目录。这些文件不会被清除,也不会包含在用户的 iCloud 或 iTunes 备份中。由于这些文件确实使用设备上的存储空间,因此您的应用程序负责定期监控和清除这些文件。
【讨论】: