Porównaj NSDictionaries zawierające NSStrings
mam dwaNSDictionaries
zawierającyNSStrings
. Aby porównać te dwa słowniki, których używamisEqualToDictionary:
metoda. Dokumentacja dotyczącaisEqualToDictionary:
mówi
„Dwa słowniki mają równą zawartość, jeśli każda z nich ma taką samą liczbę wpisów, a dla danego klucza odpowiadające im obiekty w każdym słowniku spełniają kryterium isEqual: test”.
Więc moje struny są porównywane przezisEqual:
metoda.
Pytanie brzmi:
JakisEqual:
pracować dlaNSString
?
Czy to używaisEqual:
zNSObject
? Przeczytałem toisEqual
zNSObject
po prostu porównuje adresy, używając==
. Aby udowodnić lub obalić ten pomysł, napisałem próbkę:
NSString *str1 = @"sampleString";
NSString *str2 = [NSString stringWithFormat:@"%@", @"sampleString"];
BOOL result = [str1 isEqual:str2];
Theresult
jestYES
, adresystr1
istr2
są jednak różne.
Więc albo nie używaisEqual:
zNSObject
(co niż?), lubNSObject
jestisEqual:
robi coś bardziej skomplikowanego niż tylko sprawdzanie równości adresów.
Czy ktoś wie, jak to naprawdę działa?