我希望在UITableViewController
中显示核心数据模型的数据。 Model有两个实体,具有一对多的关系。我希望来自许多实体的项目成为行,按行划分为多个部分。如果没有行,我仍然希望显示节标题。
我有一个工作NSFetchedResultsController
表仅适用于多个表,但我需要将其扩展为一对多关系。我没有运气做这项工作,也没有找到任何关于如何做到这一点的例子。
该表格将显示所有项目,而不是子集。
有什么建议吗?
答案 0 :(得分: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];