代码之家  ›  专栏  ›  技术社区  ›  Mugunth

核心数据中的mach_msg_陷阱

  •  1
  • Mugunth  · 技术社区  · 15 年前

    我正在开发一个包含核心数据的应用程序。如果第二次“使用”另一个线程,则在ManagedObjectContext时会出现此错误。 我有一个生产者-消费者类型的线程系统。producer线程和consumer线程使用相同的底层sqlite db,但是在不同的线程上使用不同的managedobjectContext。 但我希望制作人thead检查新数据,如果有,我希望它更新我的managedObjectContext。但是当它第二次运行应用程序时,就会崩溃并给出上面的结果。

    请帮忙。。。

    1 回复  |  直到 15 年前
        1
  •  6
  •   Peter Hosey    15 年前

    mach_msg_trap 是函数,不是错误。具体来说,它是run循环调用的函数,以等待某个东西到达。这个函数就是应用程序如何在不占用CPU时间的情况下等待发生的事情(I/O完成、计时器触发、发送通知等)。

    但我希望制作人thead检查新数据,如果有,我希望它更新我的managedObjectContext。

    我不是核心数据员,所以我不知道具体的解决方案,但我知道你 从未 向另一线程的MOC发送消息。你有单独的主运行中心是对的,而且你有它们是有原因的。

    我建议您编辑您的问题,以澄清您正在询问如何向一个托管对象上下文发送信号,表明另一个托管对象上下文已更改了它们共享的数据存储。你的问题和 马赫味精陷阱 .