Ios NSFETCH请求与更改跟踪不同

Ios NSFETCH请求与更改跟踪不同,ios,objective-c,core-data,nsfetchedresultscontroller,nsfetchrequest,Ios,Objective C,Core Data,Nsfetchedresultscontroller,Nsfetchrequest,我使用NSFetchRequest从核心数据返回数据,我的问题是,返回的多个对象具有相同的唯一键,我希望将它们组合在一起,以便在表视图中为每个唯一值显示一个单元格。我理解无法使用setReturnsDistinctResults:YES并保留“更改轨迹” 所有这些的目的都是显示消息列表,这些消息按mesg_conv_unique值分组。然后,用户可以选择该选项进入我设置的留言板视图。这是通过解析视图的唯一键来完成的,该键工作正常 我的代码到目前为止 NSFetchRequest *request

我使用NSFetchRequest从核心数据返回数据,我的问题是,返回的多个对象具有相同的唯一键,我希望将它们组合在一起,以便在表视图中为每个唯一值显示一个单元格。我理解无法使用setReturnsDistinctResults:YES并保留“更改轨迹”

所有这些的目的都是显示消息列表,这些消息按mesg_conv_unique值分组。然后,用户可以选择该选项进入我设置的留言板视图。这是通过解析视图的唯一键来完成的,该键工作正常

我的代码到目前为止

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"message"
                                          inManagedObjectContext:self.managedObjectContext];


[request setEntity:entity];
[request setFetchBatchSize:100];
[request setPredicate:nil];
[request setReturnsDistinctResults:YES];
[request setResultType:NSDictionaryResultType];
[request setPropertiesToFetch:@[@"mesg_conv_unique"]];

有人能提出一种方法来做到这一点,同时仍然保留“变更轨道”或另一种方法来实现我的目标吗?

解决方案是使用以下部分:

NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
                                                                                               managedObjectContext:self.managedObjectContext
                                                                                                 sectionNameKeyPath:@"mesg_conv_unique"
                                                                                                          cacheName:nil];

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
    id items = [self.fetchedResultsController.sections objectAtIndex:section];
    return [items numberOfObjects];
}

这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。请使用问题的编辑链接添加其他信息。“发布答案”按钮只能用于完整回答问题。