由于某些原因,我传递给我的if语句的参数不正确,即使它应该是我的代码:
if (currentAttribute == cBusName)
{
NSLog(@"currentAttribute == cBusName");
}
当前属性和cBusName都是NSMutableStrings两者都等于“1”但是NSLog从不输出控制台中的字符串是否有我遗漏的东西???
答案 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,搜索比较字符串