0

我正在尝试根据 4 个文本字段的最高 intValue 来更改 UILabel。这是我的代码,但是当我输入整数时,它在控制台上打印完全错误。例如“1”打印为 520387200

这是我的代码,任何关于我做错了什么的想法将不胜感激!谢谢!!

    -(IBAction)upDateCalories{
        NSLog(@"更新卡路里已被触发");

         if( [breakfast.text intValue] > [lunch.text intValue] && [dinner.text intValue] && [snacks.text intValue]) {

            MostCalorificMeal.text = @"早餐";
            NSLog(@"早餐最高");

        }


        否则 if( [lunch.text intValue] > [breakfast.text intValue] && [dinner.text intValue] && [snacks.text intValue]) {

            MostCalorificMeal.text = @"午餐";
            NSLog(@"午餐最高");

        }     


       else if( [dinner.text intValue] > [breakfast.text intValue] && [lunch.text intValue] && [snacks.text intValue]){

            MostCalorificMeal.text = @"晚餐";
            NSLog(@"晚餐最高");

        }     

     否则 if( [snacks.text intValue] > [breakfast.text intValue] && [lunch.text intValue] && [dinner.text intValue]) {

            MostCalorificMeal.text = @"小吃";
            NSLog(@"零食最高");

        }

        NSLog(@"早餐 %d",早餐);
        NSLog(@"午餐 %d",lunch);
        NSLog(@"晚餐 %d",晚餐);
        NSLog(@"snacks %d",snacks);

    }

4

1 回答 1

1

您正在记录的值是类型的对象UITextField。您不能使用%d格式说明符来记录UITextField.

将您的日志更改为:

NSLog(@"breakfast %d@",breakfast.text);
NSLog(@"lunch %@",lunch.text);
NSLog(@"dinner %@",dinner.text);
NSLog(@"snacks %@",snacks.text);

你的if陈述是不正确的。您不能使用该语法将一个值与其他几个值进行比较。你需要这样的东西:

if ([breakfast.text intValue] > [lunch.text intValue] && [breakfast.text intValue] > [dinner.text intValue] && [breakfast.text intValue] > [snacks.text intValue]) {
    // breakfast is the greatest
} else if ...

如果你使用一些变量会更好:

int breakfastVal = [breakfast.text intValue];
int lunchVal = [lunch.text intValue];
int dinnerVal = [dinner.text intValue];
int snacksVal = [snacks.text intValue];

if (breakfastVal > lunchVal && breakfastVal > dinnerVal && breakfastVal > snacksVal) {
    // breakfast is the greatest
} else if ...

这样您就不会一遍又一遍地评估相同的值。

于 2013-07-13T14:48:43.630 回答