2010-02-13 78 views
-3

我的if子句总是运行到else语句中?有什么错?If-Statement for String/Int

 NSLog([[category objectForKey:@"id"] stringValue]); // Traces 15 
     if ([[category objectForKey:@"id"] stringValue] == "15") { 
      result.isExternal = YES; 
     } else { 
      result.isExternal = NO; 
     } 

感谢帮助

+0

什么是您的字典所持有的对象的类型? – 2010-02-13 21:16:35

回答

6

你应该改变

[[category objectForKey:@"id"] stringValue] 

[[[category objectForKey:@"id"] stringValue] isEqualToString:@"15"] 

而至于比较那stringValue你怎么样,你需要做== @"15"作为"15"是不是一个字符串,除非@是盈方。

+0

谢谢,但我仍然遇到else语句。 – fabian 2010-02-13 21:11:57

+0

然后尝试比较'intValue'就像这样:'[[[category objectForKey:@“id”] intValue] isEqualToNumber:[NSNumber numberWithInt:15]]' – Garrett 2010-02-13 21:14:51

+0

'intValue'返回一个'int',这意味着你可以做'[... intValue] == 15' – 2010-02-13 21:21:31

0

您的“if”语句将两个C字符串与“==”进行比较。你应该使用strcmp。 如果你的函数返回一个目标C字符串,你应该使用@“15”和正确的比较函数。