我的 iPhone 应用程序的少数客户遇到核心数据存储损坏(我假设是这样,因为错误是“无法保存到数据存储:操作无法完成。(Cocoa 错误 259。)”)
有没有其他人经历过这种商店腐败?我很担心,因为我的目标是尽快推送执行模式迁移的更新,我担心这会暴露出更多问题。
我曾假设 Core Data/SQLlite API 使用原子操作并且不会损坏,除非底层文件系统发生损坏。
是否有减少/防止损坏的方法,以及重现损坏的方法以便我可以对此进行测试(到目前为止我一直没有成功)。
编辑:
同时出现此错误:“位于/var/mobile/Applications//Documents/foo.sqlite 的数据库已损坏。SQLite 错误代码 11,数据库磁盘镜像格式错误。”
最佳答案
当我手动覆盖我的 Base.sqlite
而没有删除 Base.sqlite-wal
和 Base.sqlite-shm
时,它发生在我身上。事实上,these files are new SQLite 3.7 features ,可能会在 iOS 7 中添加。
为了解决这个问题,我删除了 Base.sqlite-*
并且 sqlite 从我的新基础版本中重新生成了它们。
关于iphone - 核心数据存储损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2741749/