Iphone 何时从NSCachesDirectory删除文件?

Iphone 何时从NSCachesDirectory删除文件?,iphone,ios,caching,filesystems,Iphone,Ios,Caching,Filesystems,在什么情况下会删除iOS NSCachesDirectory中的文件?显然,删除并重新安装应用程序。应用程序升级呢?磁盘空间不足的情况如何?还有什么吗?根据我们的经验,此文件夹在应用程序更新时会被清除。如果能确切地知道这个文件夹什么时候可以被清除,那就太好了。文档将此文件夹描述为 可丢弃缓存文件的位置(库/缓存) 应用程序更新时,NSDocumentDirectory不会被清除,但请小心使用此文件夹,因为iOS 5现在在iCloud中使用此文件夹进行备份,如果您使用此目录存储除用户生成的内容以外

在什么情况下会删除iOS NSCachesDirectory中的文件?显然,删除并重新安装应用程序。应用程序升级呢?磁盘空间不足的情况如何?还有什么吗?

根据我们的经验,此文件夹在应用程序更新时会被清除。如果能确切地知道这个文件夹什么时候可以被清除,那就太好了。文档将此文件夹描述为

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


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

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

请查看苹果公司提供的下列文件,其中提到:

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

应用程序\u主页>/Documents

应用程序\u主页>/Library

尽管其他用户目录中的文件也可能会被移动,但您不应依赖于更新后这些文件的存在

以下是本文档的链接:


希望这有帮助。

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

在iOS 5.0及更高版本上,系统可能会删除上的缓存目录 系统磁盘空间非常少的罕见情况。这将 在应用程序运行时决不发生。但是,您应该知道 iTunes还原不一定是 缓存目录可以被擦除

如果不希望删除文件,则必须将其存储在Documents目录中,但方法如下:

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


FYI:我认为我的bug是另外一个问题,所以以上问题的答案是“在应用程序之外删除,永不”。确认使用NSDocumentDirectory存储非用户生成内容的应用程序将被拒绝。我还可以确认苹果公司确实对此进行了检查。如果需要将可重建或下载的文件存储在NSDocumentDirectory中,请确保在备份期间将其标记为跳过。苹果确实允许这样做。@Ciryon可以将用户在相机卷中选择的图像存储在NSDocumentDirectory中吗?@Respect代码,请您解释一下您的评论。我正在使用NSDocumentDirectory,有点害怕我的应用被拒绝。将其重定向到NSCache文件夹是否合适?NSDocumentDirectory只能用于用户创建的内容或无法重新创建或下载的内容。在应用程序运行时是否可以删除NSCachesDirectory?当应用程序处于后台时?(我有一个后台音频应用程序,因此它可以在后台运行时主动读取库/缓存。)我不知道,他们只会说内存不足,因此如果你使用该应用程序并收到内存警告,它可能会从缓存中删除内容。请注意,它只会在iOS 5.0.1或更高版本中删除它们。无论如何,最好的办法是将您不想删除的文件存储在NSDocumentsDirectory或NSApplicationsSupportDirectory内存不足或磁盘空间不足?更新信息后,它会显示“磁盘空间非常不足”,提示用户没有可用空间。