为什么这个目标-c if语句不起作用?

时间:2013-09-08 11:08:26

标签: iphone ios if-statement

我很抱歉,但我是Xcode和编码的新手。

我试图创建一个If语句,这样如果标签3 =或更大,那么20标签4 = 0,否则如果低于20则= 1,如果低于18.5则= 2。

这是我的代码:

    if (_label3.text >= @"20") {_label4.text = @"0";}
else if (_label3.text < @"20") {_label4.text = @"1";}
else if (_label3.text <= @"18.5") {_label4.text = @"2";}

我不确定出了什么问题,但是我收到了这个错误'字符串文字的直接比较有未定义的行为',Xcode不会让我构建应用程序。

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

您正在对字符串使用算术运算。这肯定没有意义

从文本字段输入

创建一个浮点数
if ([_label3.text floatValue] >= 20.0) {_label4.text = @"0";}

你必须改变第一和第二个分支,最后一个永远不会被调用,好像它是真的,第一个也是真的。


float value = [_label3.text floatValue];

if (value > 20.0) {_label4.text = @"0";}
else if (value  <= 18.5) {_label4.text = @"2";}
else if (value < 20.0) {_label4.text = @"1";}

答案 1 :(得分:2)

label.text是字符串值,你不能将字符串与int进行比较。将字符串更改为int,然后像这样比较

if([_label3.text intValue] >= 20){
   _label4.text = @"0";
}

希望这有帮助。