为什么此Objective-C消息会产生哈希?

时间:2019-11-06 17:22:42

标签: objective-c

我正在阅读图书馆的开源软件,我注意到这种方法-哈希。

-(NSUInteger)hash:(NSObject*)targetObject
{
    return (NSUInteger)targetObject;
}

为什么会是哈希?

1 个答案:

答案 0 :(得分:4)

目标是指向对象的指针。这意味着它是一个整数,您绝对可以将其转换为NSUInteger

基本上,这意味着一个类的两个不同实例将始终具有不同的哈希值。如果根据引用相等性来定义isEqual,那可能是一个有效的解决方案。

[NSObject hash]的默认实现实际上返回self