1

我希望在UITableViewController. 模型有两个实体,具有一对多的关系。我希望来自许多实体的项目成为行,按一个细分为部分。如果不存在任何行,我仍然希望显示部分标题。

我有一个工作NSFetchedResultsController表只为多表工作,但我需要将它扩展到一对多关系。我没有成功完成这项工作,也没有找到任何关于如何做到这一点的例子。

该表将显示所有项目,而不是子集。

有什么建议么?

4

1 回答 1

0

由于您没有提供有关您使用的模型对象的任何详细信息,因此我的示例将使用以下模型。

图书馆 <-->> 图书

我建议做的第一件事是查看文档NSFetchedResultsController,特别是initWithFetchRequest:managedObjectContext:sectionNameKeyPath:cacheName:. 它告诉您有关将数据提取到部分中所需的所有信息。

重要的部分是第一个排序描述符必须返回与sectionNameKeyPath.

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Book"];

NSSortDescriptor *librarySort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSSortDescriptor *bookSort = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
[fetchRequest setSortDescriptors:@[librarySort, bookSort]];

NSFetchedResultsController *controller = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                                                             managedObjectContext:context
                                                                               sectionNameKeyPath:@"library.name"
                                                                                        cacheName:nil];
于 2013-08-15T17:50:04.823 回答