如何使用NSFetchResultsController获取不同的值?
e.g。核心数据实体具有2个属性名称,年龄的人。
在NSFetchResultsController中搜索唯一年龄,返回每个独特年龄的名称和年龄?
答案 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以获取解释)。我认为没有一种方法可以兼顾两者:自动更改跟踪和获取返回不同结果的获取请求。