伙计们,我做错了什么?
if (numberstring.intValue <=15) {
rankLabel.text = @"A1";
}
else if (numberstring.intValue >16 && <=40){
rankLabel.text = @"A2";
}
我在“<=40”上收到错误..
伙计们,我做错了什么?
if (numberstring.intValue <=15) {
rankLabel.text = @"A1";
}
else if (numberstring.intValue >16 && <=40){
rankLabel.text = @"A2";
}
我在“<=40”上收到错误..
你错过了一个变量引用:
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 点语法来访问它并使用正常的方法调用机制。
运算符将&&
两个子句链接在一起。但是,每个子句都是独立的,因此如果删除另一个子句,则每个子句都必须在语法上正确。如果将此规则应用于您的条件,您会发现"<=40"
它本身在语法上是不正确的。因此,您需要引用正在比较的值,如下所示:
if (numberstring.intValue > 16 &&
numberstring.intValue <= 40) // this is syntactically correct on its own