在我访问实体关系中的属性时,我无法弄清楚为什么Core Data没有触发错误?
我有一种感觉,原因可能是由于我将NSManagedObjects子类化的方式是这样的:
NSManagedObject
|
MYManagedObject (NSNumber *id)
|
MYSimpleManagedObject (NSString *name)
|
Employee
\
Manager
和
NSManagedObject
|
MYManagedObject (NSNumber *id)
|
MYSimpleManagedObject (NSString *name)
|
Manager
\
Employee
在上面的场景中,Employee和Manager都是其他几个类的子类,这些类本身不在我的数据模型中的实体,而是我用来封装代码和属性的常规类,如id和名称,它们是许多实体共有的。这个模型对我来说效果很好但是我的问题是以下语句不触发错误manager.employee.name
然而,如果我使用[manager valueForKeyPath:@"employee.name"]
,则会触发故障并获得我需要的值。
我是否需要覆盖任何访问器方法或某些东西才能使值触发错误?
答案 0 :(得分:0)
在模型编辑器中,您可以指定某些实体具有父实体。我建议在Core Data中建模两个父实体并指定父子关系。
根据我的经验,您的访问者应该按预期工作。