[array containsObject:id]
方法如何运作?是与地址进行比较还是将给定的对象属性与数组元素属性进行比较?
答案 0 :(得分:1)
您是否首先尝试查看此方法的documentation?
此方法通过向每个数组的对象发送
isEqual:
消息(并将anObject作为参数传递给每个isEqual:
消息)来确定数组中是否存在anObject。
来自isEqual:
方法:
如果两个对象相等,则它们必须具有相同的哈希值。如果在子类中定义
isEqual:
并打算将该子类的实例放入集合中,则最后一点尤为重要。确保您还在子类中定义hash
。
我们可以从中得到的是,除非你要比较两个预定义类型的对象(例如NSArray
,NSString
),其中已经有一个系统描述的方法来散列对象的内容和比较哈希值时,需要提供一个- (NSUInteger)hash
方法,该方法返回一个无符号整数,对于你认为相等的对象,其值将相等。
答案 1 :(得分:1)
它使用isEqual:
。
如果指针比较符合您的要求,请使用indexOfObjectIdenticalTo:
,如果没有匹配则返回NSNotFound
。