核心数据中的mach_msg_trap

时间:2009-06-13 07:08:16

标签: iphone cocoa cocoa-touch core-data

mach_msg_trap错误是什么意思? 我正在开发一个核心数据应用程序。当ManagedObjectContext第二次“使用”另一个线程时,我收到此错误。 我是一个生产者消费者类型的线程系统。生产者线程和使用者线程使用相同的底层sqlite db,但是不同的managedobjectContext在不同的线程上使用。 但我希望生产者thead检查新数据,如果有的话,我希望它更新我的managedObjectContext。但第二次它运行应用程序崩溃给出上述结果。

请帮忙......

1 个答案:

答案 0 :(得分:6)

mach_msg_trap是一个函数,而不是错误。具体来说,它是运行循环调用等待某些东西到达的函数。该函数是您的应用程序可以等待某些事情发生(I / O完成,计时器触发,发布通知等)而不使用CPU时间。

  

但我希望生产者thead检查新数据,如果有的话,我希望它更新我的managedObjectContext。

我不是Core Data的人,所以我不知道具体的解决方案,但我确实知道你从不向另一个线程的MOC发送消息。你有权使用单独的MOC,而且你有这些MOC是有原因的。

我建议你编辑你的问题,以澄清你正在询问如何发信号通知一个托管对象上下文另一个托管对象上下文已经改变了他们两个共享的数据存储。您的问题实际上与mach_msg_trap无关。