我对两个明显相同的字符串进行了比较。不幸的是,我的if子句没有按预期工作:
NSLog(@"%@ == %@ ?",strippedString1,strippedString2);
if (strippedString1 == strippedString2) {
[_newBuild setTextColor: [NSColor greenColor] ];
[_OldBuild setTextColor: [NSColor greenColor] ];
}
这是我的NSLog输出:Build:2A12-046 == Build:2A12
即使逐字节比较也表示两个字符串相同:
任何线索?
答案 0 :(得分:3)
使用==
比较指针地址,比较可以使用的字符串的内容:
[strippedString1 isEqualToString: strippedString2];
答案 1 :(得分:0)
我认为对于String,你应该使用(这是Java).equals()
或同等的。
答案 2 :(得分:0)
您无法将两个NSStrings与==运算符进行比较,而是使用
[strippedString1 isEqualToString:strippedString2];
答案 3 :(得分:0)
重要部分:您打算使用isEqualToString
使用==将检查指针是否相等,即它会告诉您比较的两个对象实际上是否是同一个实例。
相反,我认为你的意思是检查内容是否相同,但当你知道这两个对象是字符串时,你会想要使用isEqualToString,因为它比isEqual快得多。