我正在将一些 C++ 代码转录成 ObjC。我正在查看的 operator==() 会逐个比较其私有(private)成员并返回 true,前提是它们都是 true。
operator==() 在 ObjC 中的等效实现是什么?
通过浏览,我在 ObjC 中看到:
- -等于
- -等于
- -isLike
- ==(内置?不可覆盖?)
- 还有其他我遗漏的吗?
这些方法的协议(protocol)是什么? (深度或浅度比较等...?)我应该使用哪一个来替换比较其所有成员的运算符==()?
最佳答案
isEqual:
可能是您要覆盖的内容。还要确保 hash
为两个相等的对象返回相同的值。
没有真正的比较协议(protocol)。做任何对你的类(class)有意义的事情。如果您要比较 operator==()
中的所有成员,那么这将是深度比较,是的,请使用 isEqual:
。
关于c++ - 将 C++ 中的运算符 == 转换为 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13027896/