首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Core-data:访问关系时,NSSet上的count方法失败

Core-data:访问关系时,NSSet上的count方法失败
EN

Stack Overflow用户
提问于 2010-03-27 04:03:30
回答 1查看 1.5K关注 0票数 2

我正在尝试以编程方式访问一个关系(一对多)。我的数据模型包含一个名为language (具有两个字符串属性)的NSManagedEntity,它与一个名为WordCategory (一对多)的实体有关系。我使用NSFetchRequest来获取所有的语言实体。这很好用。我得到了这段关系的valueForKey,它工作得很好。我可以使用它的对象。但是,当我尝试向存储WordCategory对象的NSSet发送消息计数时,我得到了一个

换句话说,这行代码行得通:

代码语言:javascript
复制
       NSLog(@"word category count %@",[[wordCategory anyObject] valueForKey:@"name"]);

这个不是:

代码语言:javascript
复制
NSLog(@"word category count %@",[wordCategory count]

我在调试器中得到一条消息: EXC_BAD_ACCESS。

下面是代码的其余部分:

代码语言:javascript
复制
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]);

我会比任何人都更感激这个谜团中的任何一丝光芒。谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-27 04:23:09

  • (NSUInteger)count

NSSet上的方法count的返回类型为NSUInteger。因此,如果您尝试使用%@来引用此类型,您将得到消息: EXC_BAD_ACCESS in debugger。您正在访问的值类型不是预期的。

请尝试改用%d。

NSLog(@“词类计数%d",wordCategory计数);

在bobDevil的评论之后编辑(准确答案-更多在评论中):

NSLog(@“词类计数%lu",wordCategory计数);

万事如意。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2526364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档