iOS 自定义对象相等

项目中遇到一个问题,比如类似支付宝添加最近点击的功能。为了防止对之前的对象的影响我们copy 出来。再次用数组的contain方法判断是不是在数组中时候不在。为什么呢?copy出来的对象的内存地址不一样,如果一样就直接相等了。
数组的这个方法其实调用的isEqual方法对比,理论上是可以的,但是由于自定义的类没有实现下面两个方法。其实这个时候对比的是他们的内存地址,所以会不相等。

- (BOOL)isEqual:(id)object 

- (NSUInteger)hash

==这个符号是判断两个对象的内存地址

一般系统自己有实现比如字符串相等,字典是否相等的方法。比如字符串isEqualToString方法。

怎么判断自定义类对象是否相等?实现上面两个方法,看一个demo。


iOS 自定义对象相等_第1张图片
实现两个方法
iOS 自定义对象相等_第2张图片
判断各个属性

你可能感兴趣的:(iOS 自定义对象相等)