エンティティ関係の属性にアクセスしたときにコア データがエラーを発生させない理由を理解するのに苦労していますか?
その理由は、次のような 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"]
と、障害が発生し、必要な値が得られます。
値がエラーを発生させるために、アクセサーメソッドなどをオーバーライドする必要がありますか?