Core data 具有不同值的NSFetchResultsController

Core data 具有不同值的NSFetchResultsController,core-data,nsfetchedresultscontroller,Core Data,Nsfetchedresultscontroller,如何将NSFetchResultsController用于不同的值 e、 g.具有两个属性的核心数据实体人员姓名、年龄 在NSFetchResultsController中搜索唯一年龄,返回每个唯一年龄的名称和年龄?根据您的上一条评论,我假设您希望获取年龄和名称(或系列标题和工作室)的所有唯一组合。这可以通过以下获取请求完成: NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Person"];

如何将NSFetchResultsController用于不同的值

e、 g.具有两个属性的核心数据实体人员姓名、年龄


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

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

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
[fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setPropertiesToFetch:@[@"name", @"age"]];
[fetchRequest setReturnsDistinctResults:YES];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
这提供了一个字典数组,其中包含所有唯一的年龄/姓名组合


然而,有一个问题。如果将此取回请求与取回结果控制器一起使用,则会失去自动更改跟踪的能力(例如,有关说明,请参阅)。我认为没有一种方法可以同时实现这两种功能:自动更改跟踪和返回不同结果的获取请求。

是否需要获取结果控制器来显示表视图?如果您有相同年龄的不同名称,应该显示什么?我有5个ViewController,它们都需要核心数据中的数据,但标准不同。一个只需要2个属性,例如所有唯一年龄,返回年龄和名称。一个需要按名称排序的所有条目,另一个需要特定属性的所有唯一值。最后两个通过获取反序列化的托管对象id按精确顺序保存值。它们都是TableView,只有一个具有scrollview。但是,如果一个唯一的年龄有多个名称,您希望显示哪个名称?Person是一个坏例子。一个更好的例子是电视节目集数据库。一集有一个标题,一个系列标题,一个工作室,一个运行时。我想能够找到所有独特的系列标题,返回这些和工作室链接到发现独特的系列标题。因此,可能会显示多个具有相同工作室名称的唯一系列名称。我想我必须手动完成这项工作。所以你想找到所有标题/工作室或姓名/年龄的独特组合吗?