以核心数据的一对多关系获取属于实体的所有对象

时间:2011-08-11 20:28:11

标签: iphone objective-c ios core-data

我正在开发简单的iPhone应用程序,我正在努力让核心数据正常运行。我目前在我的数据模型中有两个实体,它看起来像这样:

Data relationsship

在我的应用程序中,我有一个tableview,它应该显示属于某个音符块的所有页面。我目前使用:

NoteblockAppController * appController = [NoteblockAppController sharedNoteblockAppController];
NSArray * list = [appController allInstancesOf:@"Page" orderBy:@"createdAt"];
noteblockPages = [list mutableCopy];

但这显然不起作用,因为它总是显示相同的页面。我假设我必须以其他方式获取结果,但我不知道如何。

我很困难所以任何提示/技巧都会很棒。

感谢。

2 个答案:

答案 0 :(得分:1)

让CoreData完成工作。你有一个Noteblock的实例,对吗?

[yourNoteblock noteblockPages]

答案 1 :(得分:1)

我喜欢添加派生方法来访问这样的东西。我将这些添加到自定义类中,但不在数据模型中对它们进行建模。

一旦你的访问者正常工作,它应该返回一个可变集。然后:

- (NSArray *)noteblockPagesArray {
  NSMutableSet *pages = self.noteblockPages;
  NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"createdAt" ascending:YES];

  NSArray *orderedPages = [pages sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
  return orderedPages;
}

根据需要修改为缓存值。