If-Statement for String / Int

时间:2010-02-13 21:05:21

标签: iphone objective-c

我的if子句总是运行到else语句中?是什么错?

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

感谢您的帮助

3 个答案:

答案 0 :(得分:6)

你应该改变

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

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

至于比较stringValue你的情况,你需要做== @"15"因为"15"不是字符串,除非@在前面。

答案 1 :(得分:1)

答案 2 :(得分:0)

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