我有两个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];
虽然resultis YES、 和 的地址str1不同str2。
所以,要么它不使用isEqual:from NSObject(比什么?),要么NSObject'sisEqual:做了一些比只检查地址相等性更复杂的事情。
有人知道它是如何工作的吗?