访问关系属性时核心数据没有触发故障?

时间:2013-11-01 00:03:04

标签: ios objective-c core-data

在我访问实体关系中的属性时,我无法弄清楚为什么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"],则会触发故障并获得我需要的值。

我是否需要覆盖任何访问器方法或某些东西才能使值触发错误?

1 个答案:

答案 0 :(得分:0)

在模型编辑器中,您可以指定某些实体具有父实体。我建议在Core Data中建模两个父实体并指定父子关系。

根据我的经验,您的访问者应该按预期工作。