我在项目中使用了 coredata,有时(并非总是)它会崩溃,并收到屏幕截图中所示的错误。
我正在使用类似于这里的 coredata https://developer.apple.com/library/watchos/documentation/Cocoa/Conceptual/CoreData/Concurrency.html
有人可以帮助我理解这一点并指导我解决问题。
最佳答案
“多线程违规”部分是一个很大的线索。另外,您似乎在不同的线程中做一些与 GCD 相关的事情。
核心数据不是线程安全的。您无法在一个线程上获取托管对象并在另一个线程上使用它。由于您没有发布任何代码,因此不可能确切地说出在这种特定情况下出了什么问题。您应该按照this blog post中所述打开com.apple.CoreData.ConcurrencyDebug
。 ,它将帮助您缩小崩溃原因的范围。
一个常见错误(这里可能适用也可能不适用)是没有充分使用performBlock
和/或performBlockAndWait
。您需要对所有与核心数据相关的操作执行此操作,甚至是像读取托管对象属性的值这样简单的操作。
关于ios - Xcode 多线程违规“留给我们的就是荣誉 cocoa ”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33575664/