Objective c 数组中字典的总数

Objective c 数组中字典的总数,objective-c,nsarray,sum-of-digits,Objective C,Nsarray,Sum Of Digits,我有一个NSArray,里面有一个NSDictionary的列表。比如: NSArray *array = ...; NSDictionary *item = [array objectAtIndex:0]; NSLog (@"quantity: %@", [item objectForKey: @"quantity"]); 如何对数组的所有字典中包含的所有数量求和?如果您调用valueForKey:在数组中,它将为您提供该键的所有值的数组,因此[array valueForKey:@“qua

我有一个NSArray,里面有一个NSDictionary的列表。比如:

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

如何对数组的所有字典中包含的所有数量求和?

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

我想您可以尝试一下

NSMutableArray*quantityArray=[item objectForKey:@“quantity”];
int-total=0;

for(int i=0;iIt是从原始数组中的每个字典中获取数组的一种非常好的方法!非常感谢!您正在更新同一个字典并将其添加3次,因此总和将为9,而您预期为6。您需要在每种情况下创建一个新字典,如
[goods addObject:@{“quantity”:@1];
@ChristopherPickslay感谢您的更正。答案已更新。
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);
NSMutableArray *quantityArray = [item objectForKey: @"quantity"];
int total =0;
for(int i=0;i<[quantityArray count];i++)
{
  total+= [quantityArray objectAtIndex:i];
}