自从上次更新 Xcode(到 v4.6)以来,我收到了一堆以下警告:
"Direct comparison of string a literal has undefined behavior"
这是通过这种方式将 NSString 属性与另一个字符串进行比较时:
if ([self.myString isEqualToString:@"Compare Me"]) { ...
最初我比较过,self.myString == @"Compare Me"
但有相同的警告。Xcode 建议isEqual:
改用。
我想知道为什么我应该这样做。其他比较仍然有效,例如:
if ([segue.identifier isEqualToString:@"nextScreen"]) { // => NO WARNING HERE
编辑:好的,对于不相信/downvoters 的任何人,请参阅此屏幕截图: