3

如果你有一個NSMutableArray三個NSDictionarys這樣的:從NSMutableArray與NSDictionary項目獨特的項目?

{ 
    name:steve, age:40; 
    name:steve, age:23; 
    name:paul, age:19 
} 

我如何把它轉換成只有兩個字符串{史蒂夫,保羅}數組。換句話說,來自原始NSMutableArray的唯一名稱?有沒有辦法使用塊做到這一點?

回答

4

類似的東西:

NSMutableSet* names = [[NSMutableSet alloc] init]; 

[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)) { 
    [names addObject:[obj valueForKey:@"name"]]; 
}]; 

[名稱allObjects]將返回唯一的名稱的NSArray的

15

類似於其他的答案,你也可以這樣做:

NSSet * names = [NSSet setWithArray:[myArray valueForKey:@"name"]]; 

或者

NSArray * names = [myArray valueForKeyPath:@"@distinctUnionOfObjects.name"]; 
+1

更好的解決方案比我的!我不認爲使用valueForKey數組! – 2010-10-20 14:52:21