美文网首页OC语言
iOS 自定义对象相等

iOS 自定义对象相等

作者: 人魔七七 | 来源:发表于2018-03-13 15:18 被阅读37次

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

- (BOOL)isEqual:(id)object 

- (NSUInteger)hash

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

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

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


实现两个方法 判断各个属性

相关文章

  • iOS 自定义对象相等

    项目中遇到一个问题,比如类似支付宝添加最近点击的功能。为了防止对之前的对象的影响我们copy 出来。再次用数组的c...

  • iOS 对象判断相等

    == isEqual 重写isEqual 为什么需要重写对象的hash值 参考

  • iOS 判断对象相等

    1. 思路 当我们想要判断两个对象相等时,我们到底是在比较什么?我觉得可以通过以下三个方面的比较来确定两个对象相等...

  • iOS-对象相等性

    Objective-C中对象的相等性是经常被忽略的一块,开发中经常用到isEqual,isEqualToStrin...

  • Swift 对象相等(EqualTo)判断

    Swift 对象相等(EqualTo)判断 @(编程笔记)[iOS开发,Swift] 之前一直知道Swift用的是...

  • Keychain与NSUserDefaults

    NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象iOS keyChain 研...

  • 对象比较

    关于对象比较的实现模式;this在对象比较中的应用。 问题: 如果一个自定义类,要想判断它的两个对象是否相等,那么...

  • iOS NSUserDefaults 简介,使用 NSUserD

    [iOS NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象]http://b...

  • HashSet自定义元素类型的重复判定问题

    HashSet是无重复的集合,那么问题就是如何判定一个元素是否和另一个元素是相等的。这里需要自定义相等性。当有对象...

  • iOS持久化存储

    iOS有以下几种数据持久化方式 NSUserDefault (无法保存自定义对象) plist表 (无法保存自定义...

网友评论

    本文标题:iOS 自定义对象相等

    本文链接:https://www.haomeiwen.com/subject/xoyzfftx.html