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。

  • 相关阅读:
    cmake
    docker
    rust
    linux
    FPGA
    visual studio
    win+R
    word文档的导出(用freemarker模板导出)(桃)
    iconfont的引入方法
    jquery 日期插件
  • 原文地址:https://www.cnblogs.com/tangaofeng/p/5189555.html
Copyright © 2011-2022 走看看