我有一个包含两个实体的核心数据模型:A和B. A与一个或多个Bs有关系。 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绑定到NSArrayController。
有人能帮助我吗?
(请原谅我的发音不好。)
答案 0 :(得分:2)
你说你在一个单独的线程上做这项工作。如果是这样,您需要确保使用单独的NSManagedObjectContext
。您不能在多个线程上使用相同的NSManagedObjectContext
,也不能在另一个MOC中使用与一个MOC关联的NSManagedObject
。每个线程都需要独立地与CoreData交互。