伙计我做错了什么?
if (numberstring.intValue <=15) {
rankLabel.text = @"A1";
}
else if (numberstring.intValue >16 && <=40){
rankLabel.text = @"A2";
}
我在“&lt; = 40”上收到错误..
答案 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