1.若两个对象相等,则其哈希码(hash)也相等,但是两个哈希码相同的对象却未必相等。
如果重写isEqual方法,一定要重写hash方法。
重写的hash方法一定要简单,因为如果你的对象存在字典或者集中,hash方法会频繁的调用。
相同的对象一定要返回相同的hash值,但是有相同的hash值的对象不一定是同一个对象,这是就是产生了碰撞,但是我们要让产生这种情况的机会尽可能的少。
hash方法也可以这样实现:
- (NSUInteger)hash {
NSString *stringToHash = [NSString stringWithFormat:@""%@:%@,_firstName,_lastName];
return [stringToHash hash];
}