我的核心数据一对多对象似乎正在失去他们的课程

时间:2011-11-14 15:17:08

标签: objective-c core-data

我有一个使用Core Data的项目。有一个名为CDGroup的实体与一个名为CDChapter的实体有一对多的关系,这种关系称为章节。它们都有相应的类(NSManagedObject的子类。)

当我检索CDGroup对象时,它的类是CDGroup,这是正确的,但问题是,如果我然后尝试访问该组的章节集,如下所示:

 NSLog(@"%@",[group.chapters objectAtIndex:0].name);

我收到错误,因为检索的章节是NSManagedObject类型而不是CDChapter。我已经尝试将章节转换为正确的类,但我仍然遇到同样的问题。

我如何使这项工作?

谢谢,

2 个答案:

答案 0 :(得分:2)

您不能对投射对象使用点表示法。将呼叫分成两行:

CDChapter *chapter = [[group.chapters allObjects] objectAtIndex:0];
NSLog(@"%@",chapter.name);

或者使用访问器方法而不是点符号:

NSLog(@"%@",[(CDChapter*)[[group.chapters allObjects] objectAtIndex:0] name]); 

答案 1 :(得分:0)

章节指的是属于该关系的NSSet对象。尝试使用:

((CDChapter*)[[group.chapters allObjects] objectAtIndex:0]).name;