美文网首页
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