2010-11-04 53 views
0

出于某种原因的说法我传递给我的if语句是不正确的,即使它应该是我的继承人代码:问题,如果一个声明

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

当前属性和cBusName是一个都等于“既NSMutableStrings 1“,但NSLog永远不会输出控制台中的字符串是有什么我失踪?

回答

11

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

尝试

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

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

+0

在此看到比较详细的细节:http://www.techotopia.com/index。 php/Working_with_String_Objects_in_Objective-C#比较字符串 – 2010-11-04 06:54:49

+0

+1,我只是写这个。 。 。 – 2010-11-04 06:55:35

+0

该死的,你揍我一拳... +1 – Scott 2010-11-04 06:56:09