【发布时间】:2016-05-20 04:49:56
【问题描述】:
情况
我有一个将核心数据数据库存储在文档目录中的应用程序。它似乎在大多数情况下运行良好,除了少数用户(数量非常多)抱怨他们的数据只是“消失”了。
这是一个仔细/良好编码的应用程序,没有来自 Core Data 的奇怪错误或崩溃。
我的怀疑
当存储空间不足时,iOS 有时会在应用图标下方显示“正在清理”字样。这会清理一些目录以释放空间。
救命!
这可能是原因吗?如果是这样,我该如何阻止这种情况?任何可以对此有所了解的人都将不胜感激。
【问题讨论】:
-
iOS 会进行清理,但这只是 Temp 或 Cache 目录,而不是 docs 目录。它从不触及这一点。数据消失的用户很可能在做一些奇怪的事情。也许他们正在删除并重新安装该应用程序。也许他们正在输入奇怪的非 ascii 内容等。除非他们准确地告诉您重现此错误的步骤,否则可能无法调试。
-
我同意山姆的观点。文档应该用于用户拥有的数据,并且永远不应该被系统清除。缓存和临时目录被清除以清除空间。发布创建核心数据数据库的代码。还要获取到后备存储的路径并记录它。还要记录到您的文档目录的路径,并确保您保存到沙盒文档目录中。
-
如果适合您的应用,您还应该考虑在 iCloud 中实现 Core Data:developer.apple.com/library/ios/documentation/General/…
-
@DuncanC 是的,谢谢。我打算将 Core Data NSError 日志发送到分析服务器以获取更多信息,也许这会带来更多信息。
标签: ios iphone swift core-data