从字典数组中,生成包含一个键值的数组

时间:2010-04-21 04:51:50

标签: objective-c cocoa-touch cocoa nsarray nsdictionary

我有一系列词典。我想提取一个数组,其中包含原始数组中字典的一个特定键的所有元素。这可以在没有枚举的情况下完成吗?

2 个答案:

答案 0 :(得分:40)

是的,请使用NSArray -valueForKey:方法。

NSArray *extracted = [sourceArray valueForKey:@"a key"];

答案 1 :(得分:12)

是的,只需使用键值编码来询问密钥的值:

NSArray* names = [NSArray arrayWithObjects:
                  [NSDictionary dictionaryWithObjectsAndKeys:
                   @"Joe",@"firstname",
                   @"Bloggs",@"surname",
                   nil],
                  [NSDictionary dictionaryWithObjectsAndKeys:
                   @"Simon",@"firstname",
                   @"Templar",@"surname",
                   nil],
                  [NSDictionary dictionaryWithObjectsAndKeys:
                   @"Amelia",@"firstname",
                   @"Pond",@"surname",
                   nil],
                  nil];

//use KVC to get the names
NSArray* firstNames = [names valueForKey:@"firstname"];

NSLog(@"first names: %@",firstNames);