具有不同值的NSFetchedResultsController

时间:2013-03-17 21:01:08

标签: core-data nsfetchedresultscontroller

如何使用NSFetchResultsController获取不同的值?

e.g。核心数据实体具有2个属性名称,年龄的人。

在NSFetchResultsController中搜索唯一年龄,返回每个独特年龄的名称和年龄?

1 个答案:

答案 0 :(得分:1)

根据您的上一条评论,我假设您要获取所有年龄和名称(或系列标题和工作室)的唯一组合。这可以通过以下获取请求来完成:

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
[fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setPropertiesToFetch:@[@"name", @"age"]];
[fetchRequest setReturnsDistinctResults:YES];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];

这提供了一系列字典,包含所有唯一的年龄/名称组合。

但是有一个问题。如果您对获取的结果控制器使用此获取请求,则会失去自动更改跟踪功能(请参阅例如https://stackoverflow.com/a/13550383/1187415以获取解释)。我认为没有一种方法可以兼顾两者:自动更改跟踪获取返回不同结果的获取请求。