我有一個包含NSDictionary列表的NSArray。像:數組字典總數
NSArray *array = ...;
NSDictionary *item = [array objectAtIndex:0];
NSLog (@"quantity: %@", [item objectForKey: @"quantity"]);
我怎樣才能總結包含在數組的所有字典中的所有數量?
我有一個包含NSDictionary列表的NSArray。像:數組字典總數
NSArray *array = ...;
NSDictionary *item = [array objectAtIndex:0];
NSLog (@"quantity: %@", [item objectForKey: @"quantity"]);
我怎樣才能總結包含在數組的所有字典中的所有數量?
如果您在數組上調用valueForKey:它會爲您提供該鍵的所有值的數組,因此[array valueForKey:@「quantity」]將爲您提供一個數組,您可以循環並將所有值。
我想你可以嘗試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);
您正在更新相同的字典並將其添加3次,因此當您預期爲6時,總和將爲9。您需要在每種情況下創建一個新字典,例如'[add addObject:@ {@「quantity 「:@ 1}];' –
@ChristopherPickslay感謝您的糾正。答案已更新。 – sunkehappy
NSMutableArray *quantityArray = [item objectForKey: @"quantity"];
int total =0;
for(int i=0;i<[quantityArray count];i++)
{
total+= [quantityArray objectAtIndex:i];
}
這是一個如此偉大的方式來獲得每個字典數組原始數組中!非常感謝你! – sunkehappy