我目前正在使用NSFetchedResultsController实现UITableViewController。它从CoreData中获取一些对象,并按预期将它们显示为一行中的一行。
现在,我想再增加一个部分,其中只有一行显示关于获取的对象的汇总信息。
据我所知,一个NSFetchedResultsController只能有一个提取请求,但是我将不得不使用另一个来获取汇总信息。
也许我应该为“整体”部分使用一个NSFetchedResultsController,为单个对象部分使用另一个,但是这对我来说有点奇怪。
你怎么看?
答案 0 :(得分:0)
您可以考虑使用一个fetchedResultController。并在fetchedResultController的委托中添加一些观察器函数:
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller{
[self updateAggregatedInformation : basedOnFecthedObjects]; //with collection keypath methods;
[self updateTableView];
}
tableView数据源中的开销很小,但性能有所提高。
答案 1 :(得分:0)
我刚刚解决了这个问题,这比我想象的要容易。
NSFetchedResultsControllerDelegate从FRC接收消息,因此已根据tableView调整了传递的IndexPath.section属性。在tableView调用FRC创建由所获取的实体备份的单元格时,需要做其他的事情。