次のような 3 つの NSDictionary を持つ NSMutableArray がある場合:
{
name:steve, age:40;
name:steve, age:23;
name:paul, age:19
}
これを 2 つの文字列 { steve, paul } だけの配列に変換するにはどうすればよいでしょうか。つまり、元の NSMutableArray からの一意の名前ですか? ブロックを使用してこれを行う方法はありますか?
次のような 3 つの NSDictionary を持つ NSMutableArray がある場合:
{
name:steve, age:40;
name:steve, age:23;
name:paul, age:19
}
これを 2 つの文字列 { steve, paul } だけの配列に変換するにはどうすればよいでしょうか。つまり、元の NSMutableArray からの一意の名前ですか? ブロックを使用してこれを行う方法はありますか?
他の答えと同様に、次のこともできます。
NSSet * names = [NSSet setWithArray:[myArray valueForKey:@"name"]];
または
NSArray * names = [myArray valueForKeyPath:@"@distinctUnionOfObjects.name"];
そんな感じ:
NSMutableSet* names = [[NSMutableSet alloc] init];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)) {
[names addObject:[obj valueForKey:@"name"]];
}];
[names allObjects] は一意の名前の NSArray を返します