gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:31:35 25 4
gpt4 key购买 nike

我最近学习了如何定义 isEqualToCustomClass: 来比较该类的实例(类似于 NSStringisEqualToString:)。

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

在我的申请中使其可用的正确方法是什么?我应该子类化 NSArray 并添加自定义 isEqualToArrayOfCustomThings: 吗?还是一个类别?或者其他一些实用程序类只需要两个这样的数组并比较它们?

最佳答案

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

为此,您所需要的就是在您的类中实现 isEqual:

注意:Apple 建议每当您为类实现 isEqual: 时,您还必须实现 hash,以便比较相等的对象也具有相同的哈希值。迈克·阿什goes into some detail on this .

关于cocoa - 我应该在 NSArray 上创建一个方法来比较我创建的类的数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18001989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com