- (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中显示它?任何帮助表示赞赏!谢谢。
答案 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];