iOS 持久缓存目录
Posted
技术标签:
【中文标题】iOS 持久缓存目录【英文标题】:iOS persistent cache directory 【发布时间】:2015-12-03 00:07:54 【问题描述】:我的应用从互联网下载数据,然后将其存储在设备的某个位置,因此当用户没有互联网连接时,数据仍然可用。我知道缓存文件夹,但根据 Apple 的说法,如果设备磁盘空间不足,该目录将被删除。这对我的应用来说确实是个问题,因为对于磁盘空间不足和互联网连接不佳的用户来说,这可能会破坏应用。
我的问题:我应该在哪里保存这些文件,而不会有由于磁盘空间不足或其他原因而被系统删除的风险。我不能将它放在文档目录中,因为 Apple 会拒绝我的申请。
我尝试将其存储在文档文件夹中,然后使用以下代码行禁用 iCloud 备份。
try? NSURL.fileURLWithPath(self.path).setResourceValue(true, forKey: NSURLIsExcludedFromBackupKey)
但这根本不起作用,它返回“()”。
【问题讨论】:
【参考方案1】:来自the doc:
在 SWIFT 中处理错误:在 Swift 中,此方法返回 Void 并且是 标有 throws 关键字,表示它在 失败案例。
所以()
是预期的结果。 “工作”的真正考验是文件内容是否可检索以及它们是否不同步到云端。
顺便说一句,我更喜欢您使用 NSCaches 目录的原始想法。 恰好对于可以通过获取重新获得的内容,但是对于一直获取来说太昂贵了。将其清空以保持设备运行良好听起来完全是正确的行为。
要求您提供丰富的内容,对设备的内存影响较小,并且在很少或没有网络的情况下也能正常工作,这是一个值得称道的高标准……与其他任何人相比,我认为这太高了.
在我看来,检测到无缓存、内存不足、断开连接的情况并只是向用户道歉是合理的。告诉他们这是他们的错。
【讨论】:
以上是关于iOS 持久缓存目录的主要内容,如果未能解决你的问题,请参考以下文章
ionic项目打包好Xcode工程,模拟器运行各种沙盒缓存目录