我有两个NSDictionaries
包含NSStrings
. 为了比较这两个字典,我使用isEqualToDictionary:
方法。上的文档isEqualToDictionary:
说
“如果两个字典都包含相同数量的条目,则两个字典具有相同的内容,并且对于给定的键,每个字典中的相应值对象满足 isEqual: 测试。”
所以,我的字符串是按isEqual:
方法比较的。
问题是:
如何isEqual:
工作NSString
?
它使用isEqual:
fromNSObject
吗?我已经isEqual
从NSObject
仅比较地址中使用==
. 为了证明或反驳这个想法,我写了一个示例:
NSString *str1 = @"sampleString";
NSString *str2 = [NSString stringWithFormat:@"%@", @"sampleString"];
BOOL result = [str1 isEqual:str2];
虽然result
is YES
、 和 的地址str1
不同str2
。
所以,要么它不使用isEqual:
from NSObject
(比什么?),要么NSObject
'sisEqual:
做了一些比只检查地址相等性更复杂的事情。
有人知道它是如何工作的吗?