我有一个应用程序,它将核心数据库存储在文档目录中。它似乎在大多数情况下都运行良好,除了一些用户(非常多的用户)抱怨他们的数据消失了#39;
它是一款精心编码的应用程序,没有来自Core Data的奇怪错误或崩溃。
iOS有时会显示“清洁”字样。存储空间不足时,应用程序图标下方。这会清理一些目录以释放空间。
这可能是原因吗?如果是这样,我怎么能阻止这个?任何可以解决这个问题的光都会非常感激。
答案 0 :(得分:1)
文档目录是存储核心数据数据库的推荐位置,iOS永远不会清理"存储在那里的任何东西。
用户可以手动删除Documents目录中的文件,方法是卸载应用程序或(如果您已在info.plist中启用它)从iTunes浏览手机。
大多数用户不希望他们的数据在卸载应用程序时被销毁(例如,Mac和PC会将数据保留在原位),所以这可能就是这样。
您应该考虑在服务器或用户的iCloud帐户中存储第二份数据。这样它就不会被卸载破坏。如果它是您的服务器,那么您可以证明为此功能收费是合理的(经常性收入是对的吗?)。
备份到iTunes和iCloud都将包含您的数据库,因此您可以指示用户恢复到最近的备份以恢复其数据。
还要仔细检查代码,以了解在尝试将更改保存到数据库时如何处理磁盘空间不足错误。根据您使用核心数据的方式,这可能会变坏。
目前,iCloud中的Core Data或其他云解决方案是最佳方法。