一个TableView中有多个NSFetchedResultsController

时间:2011-07-13 22:21:09

标签: ios core-data

我正在尝试使用NSFetchedResultController从CoreData填充tableview。 问题是我想使用2个实体来填充NSFetchedResultController

其中一个实体称为文件夹,另一个是文档。 这些实体之间的关系在服务器端实现。

如何在一个类/ TableView中添加多个NSFetchedResultController?

或者我有更好的选择可以表达。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这完全取决于您如何实施UITableViewDataSource方法。你会失去一些细节,但这应该是可行的。

我有时会在展示两种不同的实体类型(frc =获取结果控制器),...

之间进行交换
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  NSInteger n = [[[self frcForTable:tableView] sections] count];
  return n;
} 

如果您正在混合来自获取结果控制器的结果,那么复杂性将取决于您是如何做到的。如果你把一种类型放在顶部,一种放在底部,它应该比你想要交织它们更容易。

修改

实施数据源方法,将两个结果“混搭”在一起:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  NSInteger count1 = [[frc1 sections] count];
  NSInteger count2 = [[frc2 sections] count];
  return count1+count2;
} 

当然,如果您想要一个部分,那么您将不需要上述部分,