在Xcode中,我收到错误“字符串文字的直接比较有未定义的行为”,我知道为什么我会得到它,但是有一些方法让我点击一个按钮让Xcode删除它?我这样说是因为在我的应用程序的370个地方我已经得到了它。
答案 0 :(得分:14)
禁用此警告的clang选项为-Wno-objc-literal-compare
。
然而,警告是有原因的;这个是因为使用==
与NSString文字进行比较并不能保证您的行为与预期的一致。改为使用isEqual:
或isEqualToString:
,你可以摆脱这个警告,避免以后再犯错误。
答案 1 :(得分:2)
You can avoid the warning using `isEqualToString` instead of `==`.
`==` simply compares the pointers, which will usually be different even
if their contents are the same. The`isEqualToString` method compares
their contents.