isEqual

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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];

 

以上是关于isEqual的主要内容,如果未能解决你的问题,请参考以下文章

JS基础 - 手写深度比较isEqual

OC中==与isEqual

isEqual

NSManagedObjects 的 isEqual

LocalDate:等于与 isEqual

hash isEqual