NSManagedObject无法从NSAtomicStoreCacheNode获取属性

时间:2012-10-31 21:59:17

标签: objective-c core-data attributes entity-relationship nsmanagedobject

我在实体A和实体B(单面)之间有一对一的关系,例如名为bRel。我有NSAtomicStore(MyStore)和NSAtomicStoreCacheNode(MyCacheNode)的子类。在MyStore的load:方法中,我为实体A和B(aNode和bNode)创建MyCacheNode实例,并为每个实例分配相应的propertyCache字典。 propertyCache for aNode包含键@"bRel"的bNode。

aManagedObject是正常创建的,并且所有属性都有效。但是当aManagedObject通过aManagedObject.bRel.someAttribute访问bManagedObject时,bManagedObject仍然存在错误。 bManagedObject未收到awakeFromInsertawakeFromFetch。 bNode和bManagedObject共享managedObjectID的同一个实例。当bManagedObject访问someAttribute时,bNode处于活动状态。当aManagedObject访问其属性时,它会通过MyCacheNode的valueForKey:。当bManagedObject执行时,我们无法到达那里。

bManagedObject根本就不会发射。

任何人都可以设想在这种情况下应该检查什么?

2 个答案:

答案 0 :(得分:1)

是肯定的。问题可能是您在托管对象上有aRel的前向声明。 尝试在aManagedObject.h文件中导入它。这样,你应该能够访问它的属性。

让我知道它是怎么回事:))

答案 1 :(得分:1)

从目前的角度来看,我认为我没有为合成属性调用willAccessValueForKey:/didAccessValueForKey:,这与自定义商店无关。 B是A,AFAIR的合成性质。