isEqual


1
NSString *str1 = @"123"; 2 NSString *str2 = [NSString stringWithFormat:@"%@", str1]; 3

大家明白, str1和str2在内存中的地址是不一样的.

如果用 isEqual:比较两者, 明显返回值为 NO;

为了我们使用方便, 我在.m实现中, 对isEqual进行了重写, 按照str1 和 str2的值来比较:

 1 /**
 2  *  常用来比较两个对象是否是否一样
 3  *
 4  *  @另外一个对象 (内存地址一样才相等)
 5  */
 6 - (BOOL)isEqual:(PPEmotionModel *)object
 7 {
 8 //    if ([self.chs isEqualToString:object.chs] || [self.code isEqualToString:object.code])
 9 //    {
10 //        return YES;
11 //    }else{
12 //        return NO;
13 //    }
14     return [self.chs isEqualToString:object.chs] || [self.code isEqualToString:object.code];
15 }

注意: 内存的分布!!!

所以在删除数组中重复元素(可以是对象)的时候, 可以直接移除

1 [Emotions removeObject:emotion];
原文地址:https://www.cnblogs.com/guangleijia/p/5161818.html