Iphone [array containsObject:id]方法是如何工作的?
Iphone [array containsObject:id]方法是如何工作的?,iphone,objective-c,Iphone,Objective C,[array containsObject:id]方法是如何工作的?是与地址比较,还是将给定对象属性与数组元素属性进行比较?您是否首先尝试查看此方法的属性 此方法通过向数组的每个对象发送isEqual:消息(并将一个对象作为参数传递给每个isEqual:消息),确定数组中是否存在一个对象 从方法上看: 如果两个对象相等,则它们必须具有相同的哈希值。如果在子类中定义isEqual:,并打算将该子类的实例放入集合中,则最后一点尤为重要。确保在子类中也定义了hash 我们可以从中得到的是,除非您正在比
[array containsObject:id]
方法是如何工作的?是与地址比较,还是将给定对象属性与数组元素属性进行比较?您是否首先尝试查看此方法的属性
此方法通过向数组的每个对象发送isEqual:
消息(并将一个对象作为参数传递给每个isEqual:
消息),确定数组中是否存在一个对象
从方法上看:
如果两个对象相等,则它们必须具有相同的哈希值。如果在子类中定义isEqual:
,并打算将该子类的实例放入集合中,则最后一点尤为重要。确保在子类中也定义了hash
我们可以从中得到的是,除非您正在比较两个预定义类型的对象(例如,
NSArray
,NSString
),其中已经有一种系统描述的方法对对象的内容进行散列并比较散列,否则您需要提供一个-(nsuiger)哈希< /代码>方法,它返回一个无符号整数,其值对于您认为相等的对象将是相等的。 < p>它使用<代码>等量:
如果指针比较是您想要的,请使用indexofobject-dentialto:
,如果没有匹配项,它将返回NSNotFound
。这将在查看文档30秒后得到完全回答。