iOS “==” 与 “isEqual”对比

简单记录下:
Objective-C中判断两个变量是否相等有两种方式,一种是利用“==”直接比较,另一种就是“isEqual”方法,下面是它们的介绍:
1、"=="方法:
当使用==来判断两个变量是否相等的时候,如果是基本类型变量,且都是数值型(类型可以不同),则只要值相等,就会返回真;
如果是两个指针类型变量【例如OC对象】,则必须是两个指针变量保存的内存地址相同才会返回真,且如果使用这种方法判断两个没有继承关系的指针变量就会提示警告:Comparison of distinct pointer types ('XXXX' and 'YYYY')
2、“isEqual”方法:
这个方法是NSObject类提供的一个实例方法,因此,所有指针变量都可以调用该方法来判断是否与其他指针变量相等。但这个方法判断两个对象相等的标准与“==”符号没有区别,同样要求两个指针变量指向同一个对象才会返回真。因此,这个NSObject类提供“isEqual”实例方法实际上没有太大意义。
不过需要特别提到的是NSString已经重写了NSObject的“isEqual”方法,判断标准不再是两个指针变量保存的内存地址相同返回真,而是只要两个字符串包含的字符序列相同就会返回真,否则假

你可能感兴趣的:(iOS “==” 与 “isEqual”对比)