2013-02-08 78 views
1

可以說我擁有一個名爲animalType的實體。 在覈心數據中,我有10,000個這樣的實體,並且有不確定數量的不同動物類型,例如,狗,貓,鳥等 我能告訴的核心數據獲取每個動物類型並返回類似於數組:CoreData是否可以返回唯一的實體屬性?

@[Dog, Cat, Bird, Fish, ...] 

我不想獲取實體的數組我只是想唯一列表的animalTypes。 應該重複否animalType

+0

@Emil感謝您的編輯! – NSWill 2013-02-08 22:05:51

+0

不客氣!請參閱[編輯幫助](http://stackoverflow.com/editing-help)瞭解格式和問題風格的提示:) – Emil 2013-02-08 22:06:58

回答

2

是的,你會想要NSFetchRequestsetReturnsDistinctResults:方法,加上setPropertiesToFetch:setResultType: NSDictionaryResultType。基本上,獲取將返回一個字典數組,而這些字典將包含與您獲取的特定屬性相對應的鍵值對 - 在您的情況中,每個字典都有一個鍵,animalType,以及該鍵的不同值。將它轉換爲像你所描述的那樣的數組將會很簡單。

+0

這看起來不錯!我會放棄這一點,然後回去接受你的回答。 – NSWill 2013-02-08 22:15:06

3
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" ...] 
+0

這也是一個傑出的答案!謝謝! – NSWill 2013-02-08 22:29:36

相關問題