2010-02-13 68 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」和正確的比較函數。