我想基於兩個整數的值執行邏輯。在這裏,我定義我的整數,而我也有NSLog的,所以我可以看到,如果值是正確的,當我運行代碼:如果語句比較整數不工作在目標c
int theHikeFlag = (int)[theNewHikeFlag objectAtIndex:(theID-1)];
NSLog(@"theHikeFlag: %@",theHikeFlag);
int fromTheDB = [self.detailItem hikeFlag];
NSLog(@"fromTheDB: %d",fromTheDB);
這裏是邏輯:
if (theHikeFlag==1) {
[email protected]"You have";
}
else if (theHikeFlag==0) {
[email protected]"You have not";
}
else {
if (fromTheDB==1) {
[email protected]"You have";
}
else {
[email protected]"You have not";
}
}
舉個例子這個代碼是如何工作的。當theHikeFlag=1
和fromTheDB=0
時,代碼繞過if和else,如果直接進入else並設置hikeString="You have not"
。這意味着我的結果與HikeFlag無關,並且基於fromTheDB整數。
如果'theNewHikeFlag'是一個'NSArray',那麼那些存儲在NSObject *中的東西不應該被轉換爲基本的數據類型。如果將它們存儲爲'NSNumber *',則將它們轉換爲此類型,然後採用'intValue' – 2012-07-13 13:43:18
您可以告訴我在運行所有可能的測試用例時獲得的日誌輸出嗎?我有一種感覺奇怪的事情發生時,你(int)施放任何在NewHikeFlag – jacerate 2012-07-13 13:44:45