Core-data: when accessing a relationship, the count method on NSSet fails
- by lordsandwich
I'm trying to access a relationship (one to many) programatically.
My Data model contains an NSManagedEntity called language (with a two string attributes)
with a relationship to an entity called WordCategory (one-to-many).
I use an NSFetchRequest to get all the Language entities. that works fine.
I get the valueForKey for the relationship and that works fine. I can work with its objects. However, when I try to send the message count to the NSSet that stores the
WordCategory objects I get a
In other words, this line works:
NSLog(@"word category count %@",[[wordCategory anyObject] valueForKey:@"name"]);
This one doesn't:
NSLog(@"word category count %@",[wordCategory count]
I get a the message: EXC_BAD_ACCESS in the debugger.
Here's the rest of the code:
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]);
I'll appreciate any light than anybody can shed in this mystery. Thanks for your help!