我正在尝试以编程方式访问关系(一对多)。我的数据模型包含一个名为语言的 NSManagedEntity(具有两个字符串属性),它与一个名为 WordCategory(一对多)的实体有关系。我使用 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]);
我会感激任何人无法在这个谜团中发现的任何光芒。谢谢你的帮助!