![]() |
1
5
调试时必须非常小心后台线程访问数据库!这是因为当调试器停止处理(例如在断点处)时,所有线程都会暂停,包括可能在数据库调用中间的线程,位于数据库“打开”和数据库“关闭”调用之间。 如果在断点处暂停,并单击停止登录xcode,则应用程序立即退出。这通常会导致错误,如您看到的错误或“损坏的数据库”错误。 实际上没有任何解决方案(因为没有办法修改“停止任务”的行为,但是我已经开发了一些技术来减轻它: 1。添加代码以检测进入后台的应用程序,并使数据库操作正常停止。 2。调试时切勿使用停止标志停止处理。相反,当用一个断点然后“继续”完成时,点击模拟器或设备上的Home按钮(这将触发您在步骤1中添加的代码),等待应用程序进入后台,然后您可以停止运行。 |
![]() |
2
5
在我的例子中,这与iOS 7有关:在iOS 7上,核心数据现在使用sqlite-wal日志模式,该模式将数据写入
这个问题有两种解决方案:
|