首页 > 其他 > 详细

NSArray的containsObject的使用时注意的问题

时间:2016-02-14 20:54:14      阅读:373      评论:0      收藏:0      [点我收藏+]

使用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。

NSArray的containsObject的使用时注意的问题

原文:http://www.cnblogs.com/tangaofeng/p/5189555.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!