0

エンティティ関係の属性にアクセスしたときにコア データがエラーを発生させない理由を理解するのに苦労していますか?

その理由は、次のような 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 に答える