【发布时间】:2019-07-11 18:52:35
【问题描述】:
我在这个路径保存媒体文件,我想知道 iOS 是自动清理缓存还是我必须手动清理?
let documentsUrl = self.fileManager.urls(for: .cachesDirectory, in: .userDomainMask).first!
搜索了一下,没有具体的答案。
【问题讨论】:
标签: ios swift caching file-manager
我在这个路径保存媒体文件,我想知道 iOS 是自动清理缓存还是我必须手动清理?
let documentsUrl = self.fileManager.urls(for: .cachesDirectory, in: .userDomainMask).first!
搜索了一下,没有具体的答案。
【问题讨论】:
标签: ios swift caching file-manager
如果需要,操作系统可以清除此文件夹。
将数据缓存文件放在 Library/Caches/ 目录中。缓存数据可用于任何需要比临时数据更持久的数据,但不如支持文件那么长。一般来说,应用程序不需要缓存数据才能正常运行,但可以使用缓存数据来提高性能。缓存数据的示例包括(但不限于)数据库缓存文件和临时的、可下载的内容。 请注意,系统可能会删除 Caches/ 目录以释放磁盘空间,因此您的应用必须能够根据需要重新创建或下载这些文件。(强调我的)
【讨论】:
是的,在某些情况下:
使用此目录来编写您的应用可以轻松重新创建的任何特定于应用的支持文件。您的应用通常负责管理此目录的内容并根据需要添加和删除文件。
在 iOS 2.2 及更高版本中,iTunes 或 iCloud 不备份此目录的内容。此外,系统会在设备完全恢复期间删除此目录中的文件。
在 iOS 5.0 及更高版本中,系统可能会在系统磁盘空间非常低的极少数情况下删除 Caches 目录。这在应用程序运行时永远不会发生。但是,请注意,从备份还原不一定是可以擦除 Caches 目录的唯一条件。
您可以查看File System Programming Guide了解更多信息。
【讨论】: