2012-11-19 88 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