我正在尝试以编程方式访问一个关系(一对多)。我的数据模型包含一个名为language (具有两个字符串属性)的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]);我会比任何人都更感激这个谜团中的任何一丝光芒。谢谢你的帮忙!
发布于 2010-03-27 04:23:09
NSSet上的方法count的返回类型为NSUInteger。因此,如果您尝试使用%@来引用此类型,您将得到消息: EXC_BAD_ACCESS in debugger。您正在访问的值类型不是预期的。
请尝试改用%d。
NSLog(@“词类计数%d",wordCategory计数);
在bobDevil的评论之后编辑(准确答案-更多在评论中):
NSLog(@“词类计数%lu",wordCategory计数);
万事如意。
https://stackoverflow.com/questions/2526364
复制相似问题