Сравнить NSDictionaries, содержащие NSStrings
У меня дваNSDictionaries
содержащийNSStrings
, Для сравнения этих двух словарей я используюisEqualToDictionary:
метод. Документация поisEqualToDictionary:
говорит
«Два словаря имеют одинаковое содержимое, если в каждом из них содержится одинаковое количество записей, и для данного ключа соответствующие объекты значений в каждом словаре удовлетворяют isEqual: test».
Итак, мои строки сравниваютсяisEqual:
метод.
Вопрос в том:
КакisEqual:
работать наNSString
?
Использует ли этоisEqual:
изNSObject
? Я прочитал этоisEqual
изNSObject
просто сравнивает адреса, используя==
, Чтобы доказать или опровергнуть эту идею, я написал пример:
NSString *str1 = @"sampleString";
NSString *str2 = [NSString stringWithFormat:@"%@", @"sampleString"];
BOOL result = [str1 isEqual:str2];
result
являетсяYES
адресаstr1
а такжеstr2
разные, хотя.
Так что, либо он не используетisEqual:
изNSObject
(что чем?) илиNSObject
«sisEqual:
делает что-то более сложное, чем просто проверка равенства адресов.
Кто-нибудь знает, как это действительно работает?