Objective c CoreData能否返回唯一的实体属性?

Objective c CoreData能否返回唯一的实体属性?,objective-c,core-data,nsfetchrequest,predicates,Objective C,Core Data,Nsfetchrequest,Predicates,假设我有一个属性为animalType的实体。 在核心数据中,我有10000个这样的实体,还有未知数量的不同动物类型,如狗、猫、鸟等。 我是否可以告诉core data获取每种动物类型并返回类似以下内容的数组: @[Dog, Cat, Bird, Fish, ...] 我不想获取实体数组,我只想要一个唯一的动物类型列表。 不应重复任何animalType。是的,您需要NSFetchRequest的setReturnsDistinctResults:方法与setPropertiesToFetch

假设我有一个属性为animalType的实体。 在核心数据中,我有10000个这样的实体,还有未知数量的不同动物类型,如狗、猫、鸟等。 我是否可以告诉core data获取每种动物类型并返回类似以下内容的数组:

@[Dog, Cat, Bird, Fish, ...]
我不想获取实体数组,我只想要一个唯一的动物类型列表。
不应重复任何animalType。

是的,您需要NSFetchRequest的setReturnsDistinctResults:方法与setPropertiesToFetch:和setResultType:NSDictionaryResultType结合使用。基本上,获取将返回一个字典数组,这些字典将依次包含与获取的特定属性相对应的键值对-在您的示例中,每个字典都有一个键、animalType和该键的不同值。将其转换为您描述的数组非常简单。

是的,您需要NSFetchRequest的setReturnsDistinctResults:方法与setPropertiesToFetch:和setResultType:NSDictionaryResultType结合使用。基本上,获取将返回一个字典数组,这些字典将依次包含与获取的特定属性相对应的键值对-在您的示例中,每个字典都有一个键、animalType和该键的不同值。将其转换为您描述的数组非常简单。

@Emil感谢您的编辑!不客气!有关格式和问题样式的提示,请参见:@Emil感谢您的编辑!不客气!有关格式和问题样式的提示,请参见:这看起来很棒!我会试一试,然后回来接受你的回答。这看起来很棒!我会试一试,然后回来接受你的答案。这也是一个出色的答案!非常感谢。这也是一个出色的答案!非常感谢。
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Animal"];
request.returnsDistinctResults = YES;
request.resultType = NSDictionaryResultType;
request.propertiesToFetch = @[@"animalType"];

NSArray *fetchedObjects = [self.managedObjectContext 
                         executeFetchRequest:request error:nil];

NSArray *result = [fetchedObjects valueForKeyPath:@"animalType"];

// @[@"Dog", @"Cat", @"Fish" ...]