Men的博客

欢迎光临!

0%

判断类相同

1.判断两个指针是否相等,若相等,则均指向同一对象,所以受测的对象也必定
相等。NSObject的isEqual:方法默认是比较两个对象指向的地址是否相等,
直接比较两个对象是否相等,实际上比较的是两个对象的指针是否相等。
2.判断两对象所属的类,若属于同一类
3.hash
比较得时候最好是先计算其哈希码,再进行比较。
4.isEqualToString
如果isEqual判断两个对象相等,那么hash方法也必须返回同一个值,
但是,如果两个对象的hash方法返回同一个值,
那么isEqual方法未必会认为两个方法相同
需要实现<NSCopying>
实现isEqual:方法的同时,要实现hash方法! 
- (BOOL)isEqual:(id)object {
if (self == object) return YES;
if (![object isKindOfClass:[Person class]]) return NO;
    return [self.name isEqualToString:[object name]];
}
用于判断两个字符串是否相等的方法,当然还有isEqualToArray:   isEqualToDictionary: 
5.深度等同性判定
NSArray 的检测方式需要先比较两个数组所包含的个数是否相同,
若相同,则在每个对应未知的两个对象身上调用其“isEqual:"方法。
如果对应位置上的对象均相等,那么这两个数组就相等。
6.NSSet中可变类的等同性比较
非常复杂,只写结论了:如果把一个对象放入set之后又修改其内容,
那么后面的行为将很难预料,使用过程中一定以注意,
以免得到的不是自己想要的结果
7.两个对象中的各个字段是否相等