isEqualToString 比isEqual 快,因为后者还要之行额外的步骤,因为它不知道受检测的对象类型。
NSOBject协议中有连个用于判断等同性的关键方法:
- (BOOL)isEqual:(id)object;
- (NSUInterger)hash;
要点:
- 若想检测对象的等同性,请提供“isEqual:” 于hash方法。
- 相同的对象必须具有相同的哈希码,但是两个相同的哈希码的对象却未必相同。
- 不要盲目的逐个检测每条属性,而是应该依照具体的需求来制定检测方案。
- 编写hash方法是,应该使用计算速度快而且哈希码碰撞几率低的算法。
时间: 2024-10-13 23:24:26