计算一个数组中的int?

时间:2014-04-30 21:47:41

标签: ios arrays

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
    if([title isEqualToString:@"Enter Food"])
    {
        Food *newFood = [[Food alloc]init];
        newFood.nameF =[alertView textFieldAtIndex:0].text;
        newFood.caloriesF = [[alertView textFieldAtIndex:1].text intValue];

        [FoodArray addObject:newFood];

我正在创建一个卡路里计数应用程序,显然需要将所有输入的卡路里相加。所以卡路里数字作为卡路里F进入数组'FoodArray'。

我曾尝试使用NSEnumerator,但我不确定这是否正确使用?

如何添加这些并在TextField中显示它?任何帮助表示赞赏!谢谢。

3 个答案:

答案 0 :(得分:2)

尝试:

int total = [[FoodArray valueForKeyPath:@"@sum.caloriesF"] intValue];

我还建议遵循命名约定,不要用大写字母(CamelCase)启动变量名。

答案 1 :(得分:1)

尝试迭代:

float calories = 0;
for (Food *foodObject in FoodArray){
    calories += [foodObject caloriesF];
}
NSLog(@"calories: %.2f",calories); //instead of printing just update your label
编辑:戴维斯的回答似乎更容易^^

答案 2 :(得分:1)

您可以使用for循环来累计所有卡路里:

NSInteger totalCal = 0;
for (FOOD *food in FoodArray) {
  totalCal += food.caloriesF
}

或者在@ David的回答中使用KVC:

NSInteger total = [[FoodArray valueForKeyPath:@"@sum.caloriesF"] integerValue];