'没有数据库频道可用'

Dyl*_*o42 10 sql database crash ios

我有一个连接到互联网的应用程序,并将数据存储在SQL数据库中.我用iOS4测试过,它完全可以正常工作.当我升级到新版本时,我得到一个NSInternalInconsistencyException,其原因如下:

'_obtainOpenChannel - NSSQLCore 0x951a640:没有数据库通道可用'

从我可以收集到的内容来看,我的数据库在不应该被访问时被访问,尽管我无法理解其中的位置或原因.

任何人都可以帮我找到并正确诊断我的问题吗?

The*_*Eye 5

我找到了一个适合这个的东西:

当我在与创建托管上下文的线程不同的线程中访问托管对象的关系时,我得到了错误(在其他一些看似随机出现的错误中).在对托管对象的并发访问方面进行了一些更改. iOS5(请参阅此处http://developer.apple.com/library/ios/#releasenotes/DataManagement/RN-CoreData/_index.html#//apple_ref/doc/uid/TP40010637) - 尽管文档说明了默认行为应该像iOS5之前的那样显然不是真的,我的代码在iOS4.2中没有问题.

现在,我的解决方法是在主线程中执行所有关系访问的东西,将数据存储在数组中,并通过该数组访问其他线程中所需的数据.至少没有错误.这不是我认为的"好"解决方案,因为我应该(并且会)改变我同时访问托管对象的方式,但我现在不会匆忙改变它.