3

如果你有一个带有三个 NSDictionary 的 NSMutableArray,如下所示:

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

我如何把它变成一个只有两个字符串 { steve, paul } 的数组。换句话说,来自原始 NSMutableArray 的唯一名称?有没有办法使用块来做到这一点?

4

2 回答 2

15

与其他答案类似,您也可以这样做:

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

或者

NSArray * names = [myArray valueForKeyPath:@"@distinctUnionOfObjects.name"];
于 2010-10-20T14:36:41.503 回答
4

类似的东西:

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

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

[names allObjects] 将返回一个唯一名称的 NSArray

于 2010-10-20T14:04:17.787 回答