0

如何将 NSFetchResultsController 用于不同的值?

例如,具有 2 个属性名称、年龄的核心数据实体人。

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

4

1 回答 1

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以获得解释)。我不认为有一种方法可以兼得:自动更改跟踪返回不同结果的获取请求。

于 2013-03-17T22:27:28.273 回答