将C ++中的operator ==转换为Objective-C

时间:2012-10-23 09:56:34

标签: c++ objective-c operators

我正在将一些C ++代码转录到ObjC中。我正在查看的运算符==()逐个比较其私有成员,如果它们都是真的则返回true。

ObjC中operator ==()的等效实现是什么?

从浏览开始,我在ObjC中看到了:

  • -isEqual
  • -isEqualTo
  • -isLike
  • ==(内置?不可覆盖?)
  • 我错过的其他人?

这些方法的协议是什么? (深度或浅度比较......等等)我应该使用哪一个来替换比较其所有成员的运算符==()?

1 个答案:

答案 0 :(得分:4)

isEqual:可能是您要覆盖的内容。还要确保hash为两个相等的对象返回相同的值。

没有真正的比较协议。做任何对你的班级有意义的事情。如果您要比较operator==()中的所有成员,那么这将是深度比较,是的,请使用isEqual: