数组中词典的数量总和

时间:2012-10-09 00:21:51

标签: objective-c nsarray sum-of-digits

我有一个包含NSDictionary列表的NSArray。像:

NSArray *array = ...;
NSDictionary *item = [array objectAtIndex:0];
NSLog (@"quantity: %@", [item objectForKey: @"quantity"]);

如何汇总数组所有词典中包含的所有数量?

3 个答案:

答案 0 :(得分:5)

我想你可以尝试KVC

NSMutableArray *goods = [[NSMutableArray alloc] init];
NSString *key = @"quantity";

[goods addObject:@{key:@(1)}];

[goods addObject:@{key:@(2)}];

[goods addObject:@{key:@(3)}];

NSNumber *sum = [goods valueForKeyPath:@"@sum.quantity"];
NSLog(@"sum = %@", sum);

答案 1 :(得分:2)

如果在数组上调用valueForKey:它会为您提供该键的所有值的数组,因此[array valueForKey:@“quantity”]将为您提供一个数组,您可以循环并对所有值求和。

答案 2 :(得分:0)

NSMutableArray *quantityArray = [item objectForKey: @"quantity"];
int total =0;
for(int i=0;i<[quantityArray count];i++)
{
  total+= [quantityArray objectAtIndex:i];
}