数组调用 removeObject 时底层会调用
- (BOOL)isEqual:(id)object 方法遍历数组中的对象,根据传入的 object 对象的指针,判断当前要比较的对象的指针是否和object的指针一样,如果一样则就是要删出的对象,如果不一样则继续遍历。
如遇到不想根据对象的指针判断两个对象相等,如果只根据对象的某个属性判断两个对象是否相等,则比较对象中可以重写 - (BOOL)isEqual:(id)object 方法,根据对象的某个属性判断两个对象是否相等。
例如:
- (BOOL)isEqual:(HMObject *)otherEmotion
{
NSLog(@"%@--isEqual--%@", self.code, otherEmotion.code);
return [self.code isEqualToString:otherEmotion.code];
}
根据
HMObject中的code属性判断传入的otherEmotion对象,是否和当前对象相等,如果两个对象的code属性相等,则两个对象相等。