iOS 中的“==”与“isEqual:”

这篇博客探讨了Objective-C中判断对象相等的两种方式:"=="和"isEqual:". "=="主要用于基本类型和指针的比较,而"isEqual:"是NSObject类提供的方法,通常要求对象的内存地址相同。然而,NSString重写了"isEqual:",以字符序列相同作为相等标准。博客通过例子展示了不同创建方式的字符串在"=="和"isEqual:"下的比较结果,并指出重写"isEqual:"可自定义相等标准。
摘要由CSDN通过智能技术生成

Objective-C中判断两个变量是否相等有两种方式,一种是利用“==”直接比较,另一种就是“isEqual”方法,下面是它们的介绍:

"=="方法:
当使用==来判断两个变量是否相等的时候,如果是基本类型变量,且都是数值型(类型可以不同),则只要值相等,就会返回真;
如果是两个指针类型变量【例如OC对象】,则必须是两个指针变量保存的内存地址相同才会返回真,且如果使用这种方法判断两个没有继承关系的指针变量就会提示警告:Comparison of distinct pointer types ('XXXX' and 'YYYY')

“isEqual”方法:
这个方法是NSObject类提供的一个实例方法,因此,所有指针变量都可以调用该方法来判断是否与其他指针变量相等。但这个方法判断两个对象相等的标准与“==”符号没有区别,同样要求两个指针变量指向同一个对象才会返回真。因此,这个NSObject类提供“isEqual”实例方法实际上没有太大意义。

不过需要特别提到的是NSString已经重写了NSObject的“isEqual”方法,判断标准不再是两个指针变量保存的内存地址相同返回真,而是只要两个字符串包含的字符序列相同就会返回真,否则假

验证:
我们通过两种方法来创建字符串,如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值