我想比较两个整数。一个是NSIndexPath
的row
,另一个是NSArray
的count
。该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)[email protected]"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
)。所以我觉得使用负整数有一些问题,我没有得到。
预先感谢您。
如果你的意思是-1应该是+1,你可以使用ABS(theCategories.count),所以它返回整数的绝对值。 – 2012-07-17 14:21:16
是不是因为你在比较NSUInteger和NSInteger? – Luke 2012-07-17 14:22:31
@EPyLEpSY不,我没有试图获得绝对值,我希望它比较0和-1。 – 2012-07-17 14:24:05