Уникальные элементы из NSMutableArray с элементами NSDictionary? - PullRequest
3 голосов
/ 20 октября 2010

Если у вас есть NSMutableArray с тремя NSDictionarys, такими как:

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

Как мне превратить это в массив с двумя строками {steve, paul}.Другими словами, уникальные имена из оригинального NSMutableArray?Есть ли способ сделать это с помощью блоков?

Ответы [ 2 ]

15 голосов
/ 20 октября 2010

Подобно другому ответу, вы также можете сделать:

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

Или

NSArray * names = [myArray valueForKeyPath:@"@distinctUnionOfObjects.name"];
4 голосов
/ 20 октября 2010

что-то вроде этого:

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

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

[names allObjects] вернет NSArray с уникальным именем

...