2012-11-19 126 views
-1

在xcode中,當_nice爲0時,它仍然執行[self ifsss]。爲什麼當我明確說明它應該在日誌中說「有效」?如果語句在Xcode中被忽略

NSLog(@"nice is %@", _nice); 

if (_nice != @"0") { 
    [self ifsss]; 
    NSLog(@"Should not have worked %@", _nice); 
} 
else { 
    NSLog(@"worked %@", _nice); 
} 

的NSLog的結果如下:

  1. 好的是22
  2. 應該不會管用22
+0

這與Xcode有什麼關係?如果您使用其他IDE,這不會是相同的嗎?或者根本沒有IDE只是GCC/clang? – 2012-11-19 23:28:16

回答

4

假設_niceNSString,你需要做的:

if (![_nice isEqualToString:@"0"]) { 

不能將基本比較運算符與對象一起使用,只能使用基本類型,如intfloat

+0

謝謝!堆棧溢出讓我等了9分鐘才接受。 – user1803649

+0

正確地說,'=='比較內存位置(指針?)和'isEqualToString'比較文本 – JonasG

+0

謝謝!我不知道我必須這樣做! – user1803649