Ios 有没有更好的方法来平展NSArray字典?

Ios 有没有更好的方法来平展NSArray字典?,ios,objective-c,swift,nsarray,nsdictionary,Ios,Objective C,Swift,Nsarray,Nsdictionary,我有一系列字典,如下所示: @[@{@"object" : @"circle", @"total" : @12}, @{@"object" : @"square", @"total" : @7}, @{@"object" : @"triangle", @"total" : @4}, ]; 我想将其展平到一个字典,其中键是对象,值是总数: @{@"circle" : @12, @"square" : @7, @"triang

我有一系列字典,如下所示:

    @[@{@"object" : @"circle", @"total" : @12},
      @{@"object" : @"square", @"total" : @7},
      @{@"object" : @"triangle", @"total" : @4},
    ];
我想将其展平到一个字典,其中键是对象,值是总数:

    @{@"circle" : @12,
      @"square" : @7,
      @"triangle" : @4,
    };
除了遍历数组并映射键之外,还有其他方法可以做到这一点吗

NSMutableDictionary *objects = [[NSMutableDictionary alloc] init];
for (NSDictionary *object in array)
{
    [objects setObject:object[@"total"] forKey:object[@"object"];
}

如果没有其他方法使用Objective C,转换将如何用Swift编写?

一种方法是使用KVC:

NSArray* array = @[@{@"object" : @"circle", @"total" : @12},
    @{@"object" : @"square", @"total" : @7},
    @{@"object" : @"triangle", @"total" : @4},
];
NSArray* objects = [array valueForKeyPath:@"object"];
NSArray* totals = [array valueForKeyPath:@"total"];
NSDictionary* final = [[NSDictionary alloc] initWithObjects:totals forKeys:objects];

向swift的转变如下:

var array = [[String : String]](); // Let this be your array
var requiredDictionary = [String : String](); //be your required dictionary
for object in array {
    let key = object["object"]
    requiredDictionary[key!] = object["total"];
}

或者,您可以使用2个swift
filter
调用来获取您的对象和总数,而不是使用KVC,然后将它们组合起来。swift 2允许您将映射函数应用到字典: