gpt4 book ai didi

cocoa - 无法从...删除关键路径 "..."的观察者...,因为它未注册为观察者

转载 作者:行者123 更新时间:2023-12-03 16:20:42 24 4
gpt4 key购买 nike

我有一个包含两个实体的核心数据模型:A 和 B。A 与一个或多个 B 有关系。B 有一个属性 bValue。

我创建了一个类的许多实例,其中一些实例调用通知。该通知调用了一个方法,该方法创建一个新的 B 实体并将其添加到 A。这些实例是使用 NSThread 创建的,以使 UI 的响应速度更快。

只有在没有调用太多通知的情况下,这才可以正常工作。或者至少“同时”不会太多。

然后我得到这个异常:

Cannot remove an observer <NSArrayController 0x10016c150> for the key path "bValue" from <bValue 0x104e55c30> because it is not registered as an observer.

是的,B 绑定(bind)到了 NSArrayController。

  • 如果我从 NIB 文件中删除这个 ArrayController,一切都会正常很好(除了 ArrayController 必须做的所有事情)
  • 如果我创建许多B并将它们添加到其他地方的A(在通知方法之外)一切正常,也可以使用 ArrayController。

有人可以帮我吗?

(请原谅我糟糕的发音。)

最佳答案

您说过您正在单独的线程上完成这项工作。如果是这样,您需要确保使用单独的 NSManagedObjectContext。您不能在多个线程上使用相同的 NSManagedObjectContext,也不能在另一个 MOC 中使用与一个 MOC 关联的 NSManagedObject。每个线程都需要独立与CoreData交互。

关于cocoa - 无法从...删除关键路径 "..."的观察者...,因为它未注册为观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com