8.对象等同性

1、NSObject协议中有两个判断等同性的方法
- (BOOL)isEqual:(id)object;
+ (NSUInteger)hash;
这两个方法的默认实现是:当且仅当“其”指针完全相同时,两个对象才想等

2、“等同性”约定: 若两个对象想等,则其哈希码想等,但两个哈希码相同的对象确未必想等

3、要对自己定义的对象实行等同性判断要重新实现以上两个方法。
- (BOOL)isEqual:(id)object {
if ([self class] == [object class]) {
// 自己编写的判定方法
} else {
return [super isEqual:object];
}
}

- (NSUInteger)hash {
    // 计算速度快、碰撞几率低
}

你可能感兴趣的:(8.对象等同性)