关于iphone:为什么我的一些核心数据对象的managedObjectContext设置为nil?

Why do some of my core data objects have managedObjectContext set to nil?

我在将对象添加到我的一个有关系的核心数据对象中时遇到了问题,在进行了一些调查之后,我意识到这是因为对象ManagedObjectContext为零(0x0)。更多调查显示,每当我创建该类型的对象时,managedObjectContext始终为零。我创建的任何其他类型的每个对象都具有正确的managedObjectContext。否,没有删除对象,这是在调用NSEntityDescription:insertNewObjectForEntityForName:inManagedObjectContext之后立即进行的

为什么只有这个特定的对象会被破坏?同样奇怪的是,即使managedObjectContext似乎为nil,它在其他方面也可以正常工作(关系问题除外)。我已经尝试过多次重置模拟器,甚至还重新生成了核心数据为该对象生成的.h和.m文件,但我无法使其正常工作。据我所知,没有错误,managedObjectContext永远不会被设置。


我想到了。 我已经添加了一个称为ManagedObjectContext的成员变量,本能地将其添加到应用程序中的大多数类中,因为我几乎总是需要它。 我没有意识到的是,我在父类NSManagedObject中覆盖了同名的方法。 这就是为什么将其重置为nil并一直有效,直到我尝试添加用于查询managedObjectContext的关系,发现它为nil并抱怨的原因。