NSFetchedResultsController和NSPredicate以及部分名称
我有两个具有多对多关系的实体的核心数据模型。
例如,
Conference <<---->> Speaker
一个会议可以有很多发言人,一个发言人可以参加很多会议。
我试图使用NSFetchedResultsController fetchRequest的主要实体是扬声器 。
尽管它确实列出了所有扬声器,但我试图将该部分作为“会议”名称并列出该部分中的所有扬声器。 我想要它,以便作为演讲者的名字“约翰”将出现在两个部分。 这意味着他是两次会议的发言人。
这是我使用的sectionNameKeyPath: @"conferences.Name"
NSFetchedResultsController *aFetchedResultsController = [[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"conferences.Name" cacheName:@"fCache"] autorelease];
它有点不起作用,当我使用[sectionInfo name]
时,我得到{TedEx}
作为章节标题。
另一个问题是If One Speaker出现在一个部分(会议)中,它不会出现在另一个部分(即使该部分(会议)具有该发言者对象)。
这可能是因为,我将sectionName视为一组组合会议。 TedEx, SXSW
作为单个部分。
一些目标应该是选择sectionNameKeypath来仅提取一个会议并列出每个会议中的所有发言人。 也许我应该设置某种谓词?
我有点在这里绑定,是一个问题的方法? 我已经阅读了关于Predicates的内容,但是如果你的新核心数据很难理解。
这与你正在考虑的方式有点不同,而且我不确定是否有更好的方法来使用FRC&sectionNameKeyPath来完成它,就像你想要的那样,但是这可能会起作用:
NSFetchRequest
来获得一个名为conferences
的NSArray
。 你可以按照会议名称或日期或任何你需要的方式进行排序。 [conferences count]
部分的[conferences count]
。 [conferences objectAtIndex:section]
,并返回该会议的发言者数量。 [[conferences objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
上一篇: NSFetchedResultsController and NSPredicate and a section name
下一篇: iphone SDK: Core Data, how to sort sections in an NSFetchedResultsController?