iOS-isEqual,isEqualToString和==区别

Objective-C中==是最好理解,如果两个对象的内存地址是一样,返回true,如果内存地址不一样,返回false.

isEqualToString: 字符串比较,只比较字符串本身的内容是否一致,不比较内存地址.

isEqual:首先检查指针的等同性,然后是类的等同性,最后对对象的属性和变量检查,比较成功返回true,两个对象如果isEqual比较成功会有相同的hash值,但是如果两个两个对象的hash值相等,不一定比较成功.

测试代码:

NSString *str1 = [NSString stringWithFormat:@"FlyElephant"];
    NSString *str2 = [NSString stringWithFormat:@"FlyElephant"];
    NSString *str3 = @"FlyElephant";
    
    NSLog(@"str1:-%p--str2:%p---str3:%p",str1,str2,str3);
    NSLog(@"== %d",str1 == str2);
    NSLog(@"isEqual--%d",[str1 isEqual:str2]);
    NSLog(@"%@--isEqualToString:%d",str1,[str1 isEqualToString:str2]);
    NSLog(@"%@--isEqualToString--%d",str1,[str1 isEqualToString:str3]);
FlyElephant.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 对数据的等同性判断包括对基本数据类型等同性的判断和对象等同性的判断。对基本数据类型等同性的判断是非常简单的,...
    VV木公子阅读 5,628评论 0 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,129评论 18 399
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,922评论 24 1,002
  • 文/松烟袅袅 灵感来自少司命的《千山雪寂》,“为一线微茫憧憬一意孤行,这众生芸芸谁不曾如此任性?相逢错过天意,时光...
    松烟袅袅阅读 6,164评论 32 38
  • 今天见到叶子,对,叶子就是那个我写过的,得了红斑狼疮又经历了多重坎坷的姑娘(《忽然很想念那个得过红斑狼疮的姑娘》)...
    八子草铺阅读 6,483评论 2 5

友情链接更多精彩内容