3

次のような 3 つの NSDictionary を持つ NSMutableArray がある場合:

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

これを 2 つの文字列 { 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 に答える