0

方法是如何[array containsObject:id]工作的?是与地址进行比较还是将给定的对象属性与数组元素属性进行比较?

4

2 回答 2

1

您是否首先尝试查看此方法的文档?

isEqual:此方法通过向数组的每个对象发送消息(并将 anObject 作为参数传递给每个isEqual:消息)来确定数组中是否存在anObject。

并从isEqual:方法:

如果两个对象相等,则它们必须具有相同的哈希值。isEqual:如果您在子类中定义并打算将该子类的实例放入集合中,那么最后一点尤其重要。确保你也在hash你的子类中定义。

我们可以从中得到的是,除非您正在比较两个预定义类型的对象(例如NSArray,无符号整数,对于认为相等的对象,其值将相等。NSString- (NSUInteger)hash

于 2012-08-20T05:30:12.820 回答
1

它使用isEqual:.

如果指针比较是您想要的,请使用,如果没有匹配indexOfObjectIdenticalTo:,它将返回。NSNotFound

于 2012-08-20T05:30:53.373 回答