c++ - 将 C++ 中的运算符 == 转换为 Objective-C

标签 c++ objective-c operators

我正在将一些 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/

相关文章:

objective-c - NSUserDefaultsDidChangeNotification : What's the name Of the Key, 已更改?

c - 当按位与应用于负数时会发生什么?

c++ - 为什么 "-3 >> 1"不会产生与 "-3/2"相同的结果?

C++ 开关结构(运行最后一个案例两次)

c++ - 如何从 C++/MFC 程序中获取控制台窗口?

c++ - std::move weak_ptr::lock 的返回值弄乱了 shared_ptr 的引用计数?

python - 什么时候 "i += x"与 Python 中的 "i = i + x"不同?

c++ - 从 C++ 数组中删除元素

iphone - 使用UIWebView显示html文件

objective-c - 如何在 Xcode 中更改 MyFramework_vers.c 的编译标志?