iOS containsobject 比较对象

释放双眼,带上耳机,听听看~!

首先要明白:containsobject比较的是对象的内存地址而不是对象内容,所以,如果我们要比较自定义的对象内容是否相同时,需要做一些特别的处理

代码如下:

- (BOOL)isEqualToPerson:(Person *)person {
if (!person) {
return NO;
}
BOOL bIsEqualNames = (!self.name && !person.name) || [self.name isEqualToString:person.name];
BOOL bIsEqualAges = self.age == person.age;
return bIsEqualNames && bIsEqualAges;
}
#pragma mark - 重载isEqual方法
- (BOOL)isEqual:(id)object {
if (self == object) {
return YES;
}
if (![object isKindOfClass:[Person class]]) {
return NO;
}
return [self isEqualToPerson:(Person *)object];
}

这样在用数组的containObject判断时就可以了

人已赞赏
iOS文章

iOS开发内购中遇到的坑

2020-2-29 19:58:27

iOS文章

NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END

2020-2-29 22:20:28

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索