我想比較兩個整數。一個是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