快速提问 - 有没有一种很好的方法来找到==
with objects 而不是 的用途isEqual:
?
全文:
我有一堆这样的代码:
typedef long DataKey;
DataKey x;
DataKey y;
if (x == y) {
// do stuff
}
我现在需要用一个对象替换使用 a long
for my DataKey
。创建类并进行大量全局搜索和替换后,我的代码现在有点像这样:
@interface DataKey : NSObject
DataKey *x;
DataKey *y;
if (x == y) { // uh-oh - this is now bad
// do stuff
}
我可以在编译器中启用一个警告,警告在指针中使用标量运算符吗?我将 Xcode 4.5.2 与 LLVM 4.1 编译器一起使用。我一直找不到。
还有其他建议可以帮助修复所有这些代码吗?这不是一个简单的代码库。有数百个源文件需要处理。这是一项重大的重构工作。
编辑:
如果有一个警告,就像在if
条件中使用赋值而不是比较时一样,那就太好了。你可以得到一个警告并使用括号来停止警告。
更新:
根据评论中的建议,我将-Weverything
编译器选项添加到测试项目中。将两个对象指针与==
.
也许可以实现 C++、重载operator==
方法以及在尝试使用该运算符时获得一些编译器警告/错误的组合。我可能会发布另一个关于此选项的问题。