话说 "=="和 "isEqual"

对于 “ ==”

1.如果是基本类型变量,且都是数值型(类型可以不同),则只要值相等,就会返回真;
如果是两个指针类型变量【例如OC对象】,则必须是两个指针变量保存的内存地址相同才会返回真,

对于 “isEqual”方法:

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

所有指针变量都可以调用该方法来判断是否与其他指针变量相等。但这个方法判断两个对象相等的标准与“==”符号没有区别,同样要求两个指针变量指向同一个对象才会返回真
所以对于对象来说 == 和 isEqual 一样

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

总结

isEqual 地址不同,只要字符串一模一样 就相等
== 比较的是字符串内存地址,地址不同 就不相等

你可能感兴趣的:(话说 "=="和 "isEqual")