【问题标题】:Do we need to cleanup downloaded image files?我们需要清理下载的图像文件吗?
【发布时间】:2016-05-04 19:58:24
【问题描述】:

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

【问题讨论】:

  • 您将文件保存到磁盘的哪个位置?

标签: ios iphone ios7


【解决方案1】:

这取决于您将它们保存在哪里。阅读File System Programming Guide 进行详细讨论。

总之,如果您要将文件保存到:

  • Temp:您无需担心清理工作,但您需要注意这些文件不会在应用启动之间保留
  • Library/Caches 通常 iOS 不会删除这些文件,但在磁盘空间不足时可以清除它们。因此,开发者必须确保这些文件可以在需要时重新生成。
  • 所有其他文件夹是的,您需要确保在不再需要文件时正确清理它们。

更新:现在您已经指定要保存到 Library/CachesFrom Apple Docs about Caches 目录:

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

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

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

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

顺便说一句,如果您是从 Internet 下载文件,为什么不使用已经构建的库(这样您就不必担心这些事情了)。

  • 如果您正在为 iOS 8.0+ 开发并使用 Swift,您可以使用 AlamofireImage 作为嵌入式框架。它带有一个非常好的缓存系统。我认为您也可以通过复制 Swift 文件在 iOS 7 上使用它。
  • 如果您使用的是Objective C,您可以使用SDWebImage,它带有自己的缓存系统。您还可以使用 AFNetworking 并启用基本缓存,this blog post 应该可以帮助您入门。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多