- (BOOL)isEqual:(id)object

每个对象都有

- (BOOL)isEqual:(id)object这个方法

例如:

/**
 *  常用来比较两个HWEmotion对象(地址)是否一样
 *
 *  @param other 另外一个HWEmotion对象
 *
 *  @return YES : 代表2个对象是一样的,NO: 代表2个对象是不一样
 */

- (BOOL)isEqual:(HWEmotion *)other
{
//    if (self == other) {
//        return YES;
//    } else {
//        return NO;
//    }

//    HWLog(@"%@--isEqual---%@", self.chs, other.chs);

//    NSString *str1 = @"jack";
//    NSString *str2 = [NSString stringWithFormat:@"jack"];
//
//    str1 == str2 // no
//    [str1 isEqual:str2]; // NO 判断地址是否一致
//    [str1 isEqualToString:str2] // YES  判断内容是否一致
    return [self.chs isEqualToString:other.chs] || [self.code isEqualToString:other.code];
}

当调用

removeObject:这个方法删除对象时,默认会调用isEqual:这个方法进行判断

时间: 2024-12-29 23:17:55

- (BOOL)isEqual:(id)object的相关文章

Object comparison - (BOOL)isEqual:(id)other

https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/ObjectComparison.html#//apple_ref/doc/uid/TP40008195-CH37-SW3 Object comparison refers to the ability of an object to determine whether it is essentially

Python标准库:内置函数id(object)

本函数是返回对象object的标识符,标识符类型为整数,在同一个时间里所有对象的标识符是唯一的,如果在不同生命周期的对象有可能有相同的标识符.比如创建对象A之后,再删除A,再创建对象B,对象A与对象B可能有相同的标识符.在CPython里的实现算法是直接返回对象所在内存地址. 例子: #id() name1 = 'abc' name2 = 'cde' print(id(name1)) print(id(name2)) print(id([])) 结果输出如下: 5472640 36108384

- (BOOL)setResourceValue:(id)value forKey:(NSString *)key error:(NSError **)error

如果我们的APP需要存放比较大的文件的时候,同时又不希望被系统清理掉,那我么我们就需要把我们的资源保存在Documents目录下,但是我们又不希望他会被iCloud备份,因此就有了这个方法 [URL setResourceValue: [NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error]; NSURLIsExcludedFromBackupKey:不被备份:

NSDictionary实现原理-ios哈希hash和isEqual

NSDictionary实现原理-ios哈希hash和isEqual OC中自定义类的NSCopying实现的注意事项(isEqual & hash实现) http://blog.csdn.net/linshaolie/article/details/41494303 iOS开发 之 不要告诉我你真的懂isEqual与hash! http://m.blog.csdn.net/hx_lei/article/details/53885798 http://www.jianshu.com/p/9153

OC 重写description,isEqual方法

// 为了能用%@打印出对象的有效信息,需要重写description方法 - (NSString *)description { // 最简单的办法是将属性和值组合成键值对存放到字典中 // 这样只需要调用字典的description方法就能获取对应的描述字符串 NSDictionary *dictionary = @{@"name" : name_, @"address" : address_, @"friends" : friends_};

ObjC中isEqual与==的区别

isEqual是NSObject的方法,我们常用它来判断两个object是否相等, 而==也常用来来判断两个object是否相等,那么它们有什么区别呢. 看一段代码就明白了: //MyItem.h @interface MyItem : NSObject { @private NSString *identifier; } @property (nonatomic, copy) NSString *identifier; - (id)initWithIdentifier:(NSString *)

重载hash与isEqual:方法

前言 NSObject 自带了hash与isEqual:方法,服务于具有hash表结构的数据结构.NSObject自带的hash函数相当于hash表中的f(key)函数中的key,这“唯一”的key需要用户自己产生,至于用什么算法由用户自己决定. 准备 // // Model.h // Hash // // Created by YouXianMing on 16/4/15. // Copyright © 2016年 YouXianMing. All rights reserved. // #i

iOS判断对象相等 重写isEqual、isEqualToClass、hash

相等的概念是探究哲学和数学的核心,并且对道德.公正和公共政策的问题有着深远的影响. 从一个经验主义者的角度来看,两个物体不能依据一些观测标准中分辨出来,它们就是相等的.在人文方面,平等主义者认为相等意味着要保持每个人的社会.经济.政治和他们住地的司法系统都一致. 对程序员来说,协调好逻辑和感官能力来理解我们塑造的'相同'的语义是一项任务.'相同的问题'(的探讨)太微妙,同时有太容易被忽视.对语义没有充分的理解就直接去实现它,可能会导致没必要的工作和不正确的结果.因此对数学和逻辑系统的深刻理解与按

YYAsyncLayer源代码解析

前言 简书地址:http://www.jianshu.com/p/a5baa43b71c8 本文的中文注释代码demo更新在我的github上. 在研究iOS UI性能优化上,异步绘制一直是一个离不开的话题.最近在研究Facebook的开源框架AsyncDisplayKit的时候,找到了YYKit作者所实现的YYAsyncLayer.从这个项目了解异步绘制的方法. 项目结构 YYAsyncLayer项目较为简单,一共就三个文件: YYSentinel:线程安全的计数器. YYTransactio