美文网首页
8.对象等同性

8.对象等同性

作者: 写代码写到人生巅峰 | 来源:发表于2017-05-05 14:32 被阅读0次

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.对象等同性

      本文链接:https://www.haomeiwen.com/subject/qktstxtx.html