UITableView中带有NSFetchedResultsController的附加部分

时间:2018-10-10 10:12:31

标签: ios swift

我目前正在使用NSFetchedResultsController实现UITableViewController。它从CoreData中获取一些对象,并按预期将它们显示为一行中的一行。

现在,我想再增加一个部分,其中只有一行显示关于获取的对象的汇总信息。

据我所知,一个NSFetchedResultsController只能有一个提取请求,但是我将不得不使用另一个来获取汇总信息。

也许我应该为“整体”部分使用一个NSFetchedResultsController,为单个对象部分使用另一个,但是这对我来说有点奇怪。

你怎么看?

2 个答案:

答案 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创建由所获取的实体备份的单元格时,需要做其他的事情。