我正在尝试比较两个整数。一个是 的row
,NSIndexPath
另一个是count
的NSArray
。row
等于 0 和count
等于 2。我将它们放在如下if
语句中:
if([self.selectedSetpoint row] < ([self.theCategories count]-3))
{
//Do true stuff
}
所以根据我的数学,if
当我比较时,这个陈述应该是错误的0 < -1
。但是,我一直认为这句话是真的,并且里面的块if
正在运行。我已尝试使用NSLog
这些值来确保我不只是得到错误的值。我把这个放在if
声明之前:
NSLog(@"%d",[self.selectedSetpoint row]);
NSLog(@"%d",[self.theCategories count]-3);
NSLog(@"%@",[self.selectedSetpoint row] < ([self.theCategories count]-3)?@"Yes":@"No");
并在控制台上得到了这个:
2012-07-17 08:58:46.061 App[61345:11603] 0
2012-07-17 08:58:46.061 App[61345:11603] -1
2012-07-17 08:58:46.062 App[61345:11603] Yes
任何想法为什么这种比较是真实的?我对比较整数有误解吗?
我有另一个 if 语句就在这个比较的上面
[self.selectedSetpoint row]<([self.theCategories count]-2)
这是0 < 0
,它工作正常(返回NO
)。所以我觉得使用负整数存在一些问题,我没有得到。
先感谢您。