假设我的核心数据模型包含以下实体:Family:
我想使用NSFetchedResultsController在UITableViewController中以下列格式显示Family的内容,其中父项是“sections”,其子项列在“parent”下:
在我的视图控制器文件中,我有以下内容:
- (void)setFRC
{
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:[Family entityName]];
NSSortDescriptor *sort1 = [[NSSortDescriptor alloc] initWithKey:@"Child" ascending:YES];
NSSortDescriptor *sort2 = [[NSSortDescriptor alloc] initWithKey:@"Name" ascending:YES];
NSArray *sorters = [NSArray arrayWithObjects:sort1, sort2, nil];
[request setSortDescriptors:sorters];
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:[MYCoreDataManager managedObjectContext] sectionNameKeyPath:@"Child" cacheName:nil];
}
但是,当使用上面的代码时,我得到的是以下表格:
有人可以告诉我如何将“孩子”分组到正确的“父母”之下吗?我意识到数据模型可以分开,以便为子和父提供单独的实体;但是,我正在使用遗留代码,暂时无法修改数据模型。
答案 0 :(得分:0)
我认为你需要使用谓词:
获取所有家长
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Child == %@", @NO];
循环通过父母并让他们所有的孩子
NSPredicate * predicate = [NSPredicate predicateWithFormat:@“Child ==%@ AND Parent ==%@”,@ YES,parent.Name];
此解决方案导致数组构造。不确定,这个答案对你有帮助,因为你正在寻找一个NSFetchedResultsController。