我们需要清理下载的图像文件吗?

anu*_*nuj -1 iphone ios ios7

在我的iOS应用程序中,我正在下载一堆图像文件并将它们保存在磁带库/缓存中的磁盘上.我是否需要删除这些文件,因为当磁盘空间不足时,iOS会自动清除这些文件.

ish*_*haq 5

这取决于你保存它们的位置.阅读文件系统编程指南以获取详细讨论.

在摘要中,如果要将文件保存到:

  • Temp:您不需要担心清理,但是您需要注意这些文件在应用程序启动之间不会持续存在
  • 库/缓存通常iOS不会删除这些文件,但在低磁盘空间运行时可以清除它们.因此,开发人员必须确保在需要时可以重新生成这些文件.
  • 所有其他文件夹是,您需要确保在不再需要时正确清理文件.

更新:现在您已指定要保存到库/缓存,从Apple Docs关于Caches目录:

使用此目录可以编写应用程序可以轻松重新创建的任何特定于应用程序的支持文件.您的应用程序通常负责管理此目录的内容以及根据需要添加和删除文件.

在iOS 2.2及更高版本中,iTunes不会备份此目录的内容.此外,iTunes会在完全恢复设备期间删除此目录中的文件.

在iOS 5.0及更高版本中,系统可能会在系统磁盘空间非常少的情况下删除Caches目录.当应用程序运行时,这将永远不会发生.但是,您应该知道iTunes还原不一定是可以擦除Caches目录的唯一条件.

具体您的应用程序通常负责...根据需要添加和删除文件.,你应该经常清理自己.如果你知道你已经完成了文件,将它们保存在磁盘上并等待设备在低磁盘空间运行,以便操作系统删除它们是个坏主意.

顺便说一句,如果你是从互联网上下载文件,为什么不使用已经建立的库(这样你就不必担心这些事情了).

  • 如果您正在为iOS 8.0+开发并使用Swift,则可以使用AlamofireImage作为嵌入式框架.它配备了一个非常好的缓存系统.我想你也可以通过复制Swift文件在iOS 7上使用它.
  • 如果您使用的是Objective C,则可以使用自带缓存系统的SDWebImage.你也可以使用AFNetworking并启用基本缓存,这篇博文应该可以帮助你入门.