我的核心数据模型包含两个实体,这两个实体之间具有多对多的关系。
例如,
Conference <<---->> Speaker
会议可以有很多发言人,一位发言人可以参加很多会议。
我试图使用NSFetchedResultsController,fetchRequest的主要实体是 Speaker 。
虽然它确实列出了所有发言人,但我试图将该部分作为“会议”名称并列出该部分内的所有发言人。我希望它能让“John”这个名字作为演讲者出现在两个部分中。这意味着他是两次会议的发言人。
这是我正在使用的sectionNameKeyPath:@"conferences.Name"
NSFetchedResultsController *aFetchedResultsController = [[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"conferences.Name" cacheName:@"fCache"] autorelease];
它有点不起作用,当我使用{TedEx}
时,我得到[sectionInfo name]
作为章节标题。
另一个问题是,如果我在一个部分(会议)中出现一个发言者,它将不会出现在另一部分中(即使该部分(会议)具有该发言者对象)。
这可能是因为我将sectionName视为一组合并的会议。 TedEx, SXSW
作为一个部分。
目标应该是如何挑出sectionNameKeypath来仅获取一个会议并列出每个会议中的所有发言者。也许我应该设置某种谓词?
我有点在这里绑定,这是一个问题吗?我读过有关谓词的内容,但如果你的新核心数据有点难以理解。
答案 0 :(得分:0)
这与你想要的方式略有不同,我不确定是否有更好的方法来实现它与FRC&amp; sectionNameKeyPath就像你想要或不想,但也许这将起作用:
NSFetchRequest
即可
名为NSArray
的{{1}}。你可以按顺序排序
conferenceName或日期或您需要的任何内容。 conferences
。[conferences count]
的会议对象,并返回该会议的发言人数。[conferences objectAtIndex:section]