1

我有一个字符串需要与整数值进行比较。

到目前为止我这样做了:

NSString *rad = [NSString stringWithFormat: @"%@", combo.selectedText];
srchParam.radius = rad;
if (srchparam.radius > 5)
{
    //code here
}

我究竟做错了什么 ?

4

6 回答 6

3

试试这个:

if ([combo.selectedText intValue] > 5) {
   //code here
}
于 2012-09-10T13:36:45.250 回答
1
srchParam.radius = [rad intValue];
于 2012-09-10T12:52:28.783 回答
1

是的。使用运算符比较 NSString<将比较它的内存地址,而不是神奇地比较它的内容(记住:Objective-C 不是 C++,没有运算符重载)。您必须使用将字符串的数值与另一个整数进行比较

if (([srchparam.radius intValue]) > 5)
{
     // code here
}

另外,请使用空格 - 您的代码会更好,更容易阅读。

于 2012-09-10T12:54:22.627 回答
1

我猜半径在这里是一个整数。因此 :

NSString *rad=[NSString stringWithFormat:@"%@",combo.selectedText];
srchParam.radius =[rad intValue];
if((srchparam.radius)>5)
{
 //code here
}
于 2012-09-10T12:54:33.147 回答
1
NSString *rad=[NSString stringWithFormat:@"%@",combo.selectedText];
if([rad intValue]>5)
{
 //code here
}
于 2012-09-10T12:55:00.340 回答
0

那是对的!

if([[srchparam.radius] integerValue] > 5)

如果您仍在使用 Xcode 4.4,则此示例在 Xcode 4.5 和 iOS SDK 6.0 中工作,只需更改intValue上的integerValue 即可

于 2012-09-10T12:55:14.003 回答