我想知道如何NSSet确保它只有唯一的对象?当我们尝试添加重复值时,那么它在哪个条件上决定它已经具有此值?我想知道潜在的唯一性标准.
NSSet使用对象的isEqual:方法实现来决定对象的相等性.它还hash用于使查找更快.
-(BOOL)isEqual:(id)other;
-(NSUInteger)hash;
Run Code Online (Sandbox Code Playgroud)
当两个对象相等时,它们的hash方法必须返回相同的值(具有相同的对象hash,但是,可能不一定彼此相等).
当你的hash和isEqual:被正确实施,NSSet可以决定通过检查只对象,它们的极少数平等hash"碰撞"与hash您要添加到集合中的对象.
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |