我在实体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未收到awakeFromInsert
或awakeFromFetch
。 bNode和bManagedObject共享managedObjectID
的同一个实例。当bManagedObject访问someAttribute时,bNode处于活动状态。当aManagedObject访问其属性时,它会通过MyCacheNode的valueForKey:
。当bManagedObject执行时,我们无法到达那里。
bManagedObject根本就不会发射。
任何人都可以设想在这种情况下应该检查什么?
答案 0 :(得分:1)
是肯定的。问题可能是您在托管对象上有aRel的前向声明。 尝试在aManagedObject.h文件中导入它。这样,你应该能够访问它的属性。
让我知道它是怎么回事:))
答案 1 :(得分:1)
从目前的角度来看,我认为我没有为合成属性调用willAccessValueForKey:/didAccessValueForKey:
,这与自定义商店无关。
B是A,AFAIR的合成性质。