0

我最近学习了如何定义一个isEqualToCustomClass:来比较该类的实例(类似于NSString's isEqualToString:)。

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

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

4

1 回答 1

4

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

那么,您所需要的就是isEqual:在您的班级中实施。

注意:Apple 建议,每当您isEqual:为一个类实现时,您还必须实现hash这样的对象,即比较为相等的对象也具有相同的哈希值。Mike Ash对此进行了详细介绍

于 2013-08-01T18:47:21.057 回答