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 {
    // 计算速度快、碰撞几率低
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容