OC中==与isEqual

Posted yibinpan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC中==与isEqual相关的知识,希望对你有一定的参考价值。

其实==就是判断两个变量里的值是否相等,OC中也就是判断两个变量中的指针的值是否相等,抽象地理解就是判断两个指针是否指向同一个对象。

当对象的isEqual方法不被重写时,==与isEqual等价,也就是如果两个指针相等,那么它们就指向同一个对象。

如果isEqual方法被重写了,那么这时候==与isEqual就不同了,用isEqual方法判断相等的两个对象就有可能不是同一个对象。

 

一个注意点是重写isEqual方法的话需要同时重写hash方法(hash方法在很多容器的勒类中用到,如NSDictionary等,这个对象做key的时候用来计算哈希值)。

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

OC基础--OC中类的声明与定义

iOS OC与Swift混编

Swift与OC混编

Swift 与 OC 枚举的异同

OC中==与isEqual

OC 内存管理:MRC与ARC