プログラムで関係(1対多)にアクセスしようとしています。私のデータモデルには、WordCategory(1対多)と呼ばれるエンティティとの関係を持つ言語(2つの文字列属性を持つ)と呼ばれるNSManagedEntityが含まれています。NSFetchRequestを使用して、すべての言語エンティティを取得します。それはうまくいきます。関係のvalueForKeyを取得し、それは正常に機能します。そのオブジェクトを操作できます。ただし、WordCategoryオブジェクトを格納するNSSetにメッセージカウントを送信しようとすると、
言い換えれば、この行は機能します:
NSLog(@"word category count %@",[[wordCategory anyObject] valueForKey:@"name"]);
これはしません:
NSLog(@"word category count %@",[wordCategory count]
デバッガーにEXC_BAD_ACCESSというメッセージが表示されます。
残りのコードは次のとおりです。
NSManagedObjectContext *moc = [myAppDelegate managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Language" inManagedObjectContext:moc]];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error: &error];
if (error) {
[NSApp presentError:error];
return;
}
NSManagedObject *obj = [results objectAtIndex:0];
NSSet *wordCategory = [obj valueForKey:@"category"];
NSLog(@"word category count %@",[wordCategory count]);
この謎に誰もが当てることができるよりもどんな光にも感謝します。ご協力いただきありがとうございます!