KVCを使用して、Coreデータを使用して構築されたカスタムNSManagedObjectエンティティのプロパティの値を取得しようとしています。数レベルの深さのプロパティにアクセスしようとすると、UnknownKeyExceptionが発生します。私の人生では、その理由がわかりません...
ルートエンティティは「キャッチ」と呼ばれます。重量、長さなど、いくつかのプロパティがあります。また、「種」と呼ばれる別のエンティティと1対1の関係があります。種には、NSStringとして定義されたnameプロパティがあります。
それで:
//this will output the species name (i.e. "Brook Trout")
NSLog(@"Catch.species.name = %@", catch.species.name);
//this will throw a NSUnknownKeyException
NSLog(@"Catch.species.name = %@", [catch valueForKey:@"species.name"]);
//but this works...!?
Species *species = (Species*)[catch valueForKey:@"species"];
NSLog(@"Species.name = %@", species.name);
具体的な例外の詳細は次のとおりです。
*キャッチされなかった例外'NSUnknownKeyException'が原因でアプリを終了しています。理由:'[valueForUndefinedKey:]:エンティティCatchは、キー"species.name"のキー値コーディングに準拠していません。
私よりもこのことをよく理解している人は、何が起こっているのか知っていますか?
前もって感謝します!