实体 A 和实体 B 之间存在一对一关系(单向),例如名为 bRel。我有 NSAtomicStore
(MyStore) 和 NSAtomicStoreCacheNode
(MyCacheNode) 的子类。在 MyStore 的 load:
方法中,我为实体 A 和 B(aNode 和 bNode)创建了 MyCacheNode 实例,并为每个实体分配了相应的 propertyCache 字典。 aNode 的 propertyCache 包含键 @"bRel"
的 bNode。
aManagedObject 正常创建并且所有属性都有效。但是当aManagedObject通过aManagedObject.bRel.someAttribute
访问bManagedObject时,bManagedObject仍然是错误的。 bManagedObject 不接收 awakeFromInsert
或 awakeFromFetch
。 bNode 和 bManagedObject 共享相同的 managedObjectID
实例。当 bManagedObject 访问 someAttribute 时,bNode 处于事件状态。当 ManagedObject 访问它的属性时,它会通过 MyCacheNode 的 valueForKey:
。当 bManagedObject 这样做时,我们不会到达那里。
bManagedObject 根本不会触发。
有人能猜出在这种情况下我应该检查什么吗?
最佳答案
是的。问题可能是您在托管对象上有 aRel 的前向声明。 尝试将其导入 aManagedObject.h 文件。这样,您应该能够访问它的属性。
让我知道进展如何:)
关于objective-c - NSManagedObject 无法从 NSAtomicStoreCacheNode 获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168064/