修复“字符串文字的直接比较具有未定义的行为”自动修复

时间:2013-04-26 23:05:43

标签: objective-c xcode

在Xcode中,我收到错误“字符串文字的直接比较有未定义的行为”,我知道为什么我会得到它,但是有一些方法让我点击一个按钮让Xcode删除它?我这样说是因为在我的应用程序的370个地方我已经得到了它。

2 个答案:

答案 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.