2

我看了一些示例代码和苹果文档,这一切似乎 fetchedResultsController 总是有一个节数。

如何让它返回两个部分?

因为真正的问题是,我正在做一个 iOS To-do 应用程序。有完成/待办事项列表,保存在核心数据中,显示UITableview为两个部分。

但是fetchedResultsController只有一个,如何让它支持两个section呢?

这是官方示例代码,我不知道如何更改。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    NSInteger count = [[fetchedResultsController sections] count];

    if (count == 0) {
        count = 1;
    }

    return count;
}
4

1 回答 1

4

sectionNameKeyPath构建 FetchedResultsController 时需要提供一个。在您的情况下,finished如果您的实体具有该属性,则可能是这样。

文档

更新:

您将像这样初始化 NSFetchedResultsController:

NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:manangedObjectContext sectionNameKeyPath:@"category" cacheName:nil];

确保sortDescriptorsfetchRequest提供的顺序与您的顺序相同sectionNameKeyPath

您可以像这样访问该部分的名称:

id<NSFetchedResultsSectionInfo> sectionInfo = fetchedResultsController.sections[section];
NSString *sectionTitle = [sectionInfo name];
于 2013-06-25T13:02:26.720 回答