if语句的问题

时间:2010-11-04 06:46:38

标签: objective-c cocoa-touch

由于某些原因,我传递给我的if语句的参数不正确,即使它应该是我的代码:

    if (currentAttribute == cBusName)
    {
        NSLog(@"currentAttribute == cBusName");
    }

当前属性和cBusName都是NSMutableStrings两者都等于“1”但是NSLog从不输出控制台中的字符串是否有我遗漏的东西???

2 个答案:

答案 0 :(得分:11)

==运算符正在比较这些对象是同一个对象(IE指向内存中的相同地址),而不是它们的值是相同的。

尝试

if ([currentAttribute isEqualToString: cBusName])
{
    NSLog(@"currentAttribute == cBusName");
}

比较两个字符串的,而不是它们在内存中的位置。

答案 1 :(得分:0)

  

无法比较字符串对象   使用相等(==)运算符。该   原因是任何企图   以这种方式进行比较   只需比较两个字符串是否相同   对象位于相同的内存中   地点。我们来看看这个   通过一个例子:通过一个例子:

来自http://www.techotopia.com/index.php/Working_with_String_Objects_in_Objective-C,搜索比较字符串