如果声明出错-xcode

时间:2012-09-18 15:33:31

标签: objective-c c if-statement

伙计我做错了什么?

if (numberstring.intValue <=15) {
    rankLabel.text = @"A1";
}
else if (numberstring.intValue >16 && <=40){       
    rankLabel.text = @"A2";
}

我在“&lt; = 40”上收到错误..

2 个答案:

答案 0 :(得分:5)

您错过了变量引用:

if (numberstring.intValue <=15) {
    rankLabel.text = @"A1";
}                                  //        vv here vv
else if (numberstring.intValue >16 && numberstring.intValue <= 40){       
    rankLabel.text = @"A2";
}

作为一个可选的附加内容,它看起来像numberstring是一个NSString对象,您将重复转换为整数以测试各种范围。该操作非常昂贵,因此您最好进行一次转换:

int value = [numberstring intValue];
if (value <=15) {
    rankLabel.text = @"A1";
}
else if (value >16 && value <= 40){       
    rankLabel.text = @"A2";
}

另请注意,intValue方法不是属性,因此我会避免使用Objective-C 2.0点语法来访问它并使用常规方法调用机制。

答案 1 :(得分:2)

&&运算符将两个子句链接在一起。但是,每个子句都是独立的,因此如果另一个子句被删除,则每个子句必须在语法上正确。如果您将此规则应用于您的条件,您可以看到"<=40"本身在语法上不正确。因此,您需要引用要比较的值,如下所示:

if (numberstring.intValue > 16 &&
    numberstring.intValue <= 40)    // this is syntactically correct on its own