我应该在NSArray上创建一个方法来比较我创建的类的数组吗?

时间:2013-08-01 18:39:53

标签: cocoa nsarray equality

我最近学会了如何定义isEqualToCustomClass:来比较该类的实例(类似于NSString的{​​{1}})。

在我的项目中,我需要多次比较这些对象的数组。当且仅当计数相同且每个位置的自定义对象相同(顺序必须相同)时,我认为它们相等。

在整个申请过程中提供此功能的正确方法是什么?我应该继承isEqualToString:并添加自定义NSArray吗?还是一个类别?或者其他一些实用程序类只需要两个这样的数组并对它们进行比较?

1 个答案:

答案 0 :(得分:4)

-[NSArray isEqualToArray:]使用数组成员的isEqual:方法来测试与另一个数组的相等性。如果您愿意,-[NSArray isEqual:]会致电isEqualToArray:

然后,您需要的只是isEqual:在您的班级中实施。

N.B。:Apple建议,无论何时为类实现isEqual:,都必须实现hash,以便比较相等的对象也具有相同的哈希值。 Mike Ash goes into some detail on this