出于某种原因的说法我传递给我的if语句是不正确的,即使它应该是我的继承人代码:问题,如果一个声明
if (currentAttribute == cBusName)
{
NSLog(@"currentAttribute == cBusName");
}
当前属性和cBusName是一个都等于“既NSMutableStrings 1“,但NSLog永远不会输出控制台中的字符串是有什么我失踪?
出于某种原因的说法我传递给我的if语句是不正确的,即使它应该是我的继承人代码:问题,如果一个声明
if (currentAttribute == cBusName)
{
NSLog(@"currentAttribute == cBusName");
}
当前属性和cBusName是一个都等于“既NSMutableStrings 1“,但NSLog永远不会输出控制台中的字符串是有什么我失踪?
==
运算符正在比较那些对象是相同的对象(IE指向内存中的相同地址),而不是它们的值相同。
尝试
if ([currentAttribute isEqualToString: cBusName])
{
NSLog(@"currentAttribute == cBusName");
}
其中比较值两个字符串的,而不是他们在内存中的位置。
使用等号(==)运算符不能比较字符串对象 。 的原因是,任何尝试 执行比较这种方式将 只是比较两个字符串 对象是否位于相同的内存 的位置。让我们一起来看看这款 通过一个例子:通过一个例子:
从http://www.techotopia.com/index.php/Working_with_String_Objects_in_Objective-C,搜索字符串
在此看到比较详细的细节:http://www.techotopia.com/index。 php/Working_with_String_Objects_in_Objective-C#比较字符串 – 2010-11-04 06:54:49
+1,我只是写这个。 。 。 – 2010-11-04 06:55:35
该死的,你揍我一拳... +1 – Scott 2010-11-04 06:56:09