zoukankan      html  css  js  c++  java
  • NSArray的containsObject的使用时注意的问题

    使用containsObject方法的场景很多,列如:判断某一对象(元素)是否存在数组中,但使用的时候应该注意:containsObject内部在比较对象是否相等时采取的是地址比较,如果两个不同的地址但内容完全相等的对象采取containsObject进行比较时默认返回NO,针对这一情况,一般我们需要在自定义的类中重载NSObject的- (BOOL)isEqual:(id)object方法。因为containsObject方法比较对象时会调用对象的- (BOOL)isEqual:(id)object方法。

    一般的写法:

    - (BOOL)isEqual:(id)object {

        if (object == self) {

            return YES;

        }

        if (![object isKindOfClass:[NewsEntity class]]) {

            return NO;

        }

        NewsEntity *entity = (NewsEntity *)object;

        if ([entity.title isEqualToString:self.title]) {

            return YES;

        }

        else {

            return NO;

        }

    }

    这样就不管比较的对象地址是否相同,只要内容相等就会返回YES。

  • 相关阅读:
    邮箱整理
    C++ Primer Plus 6 笔记(1)
    MySQL的远程链接
    MySQL的安装和使用
    nginx的反向代理和负载均衡
    linux--配置开发环境 --Nginx篇
    linux--配置开发环境 --Apache篇
    Linux -- 运维
    Linux
    使用宝塔面板部署tp5网站
  • 原文地址:https://www.cnblogs.com/tangaofeng/p/5189555.html
Copyright © 2011-2022 走看看