0

当我访问实体关系中的属性时,我无法弄清楚为什么 Core Data 没有触发错误?

我有一种感觉,原因可能是我将 NSManagedObjects 子类化的方式,就像这样:

NSManagedObject
     |      
MYManagedObject (NSNumber *id)
     |
MYSimpleManagedObject (NSString *name)
     |
Employee
      \
       Manager

NSManagedObject
     |
MYManagedObject (NSNumber *id)
     |
MYSimpleManagedObject (NSString *name)
     |
  Manager
        \ 
      Employee

在上面的场景中,Employee 和 Manager 都是其他几个类的子类,它们本身不是我的数据模型中的实体,而是我用来封装代码属性的常规类,例如许多常见的 id 和 name实体。这个模型对我来说效果很好,但是我的问题是以下语句不会触发错误manager.employee.name

但是,如果相反,我使用[manager valueForKeyPath:@"employee.name"]故障被触发,我得到了我需要的值。

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

4

1 回答 1

0

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

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

于 2013-11-01T01:13:10.330 回答