我希望在UITableViewController
. 模型有两个实体,具有一对多的关系。我希望来自许多实体的项目成为行,按一个细分为部分。如果不存在任何行,我仍然希望显示部分标题。
我有一个工作NSFetchedResultsController
表只为多表工作,但我需要将它扩展到一对多关系。我没有成功完成这项工作,也没有找到任何关于如何做到这一点的例子。
该表将显示所有项目,而不是子集。
有什么建议么?
由于您没有提供有关您使用的模型对象的任何详细信息,因此我的示例将使用以下模型。
我建议做的第一件事是查看文档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];