方法是如何[array containsObject:id]
工作的?是与地址进行比较还是将给定的对象属性与数组元素属性进行比较?
问问题
243 次
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 回答