代码之家  ›  专栏  ›  技术社区  ›  RunLoop

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

  •  12
  • RunLoop  · 技术社区  · 14 年前

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

    2 回复  |  直到 10 年前
        1
  •  40
  •   David Gelhar    14 年前

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

    NSArray *extracted = [sourceArray valueForKey:@"a key"];
    
        2
  •  12
  •   Rob Keniger    14 年前

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

    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);