Ich habe zwei NSDictionaries
mit NSStrings
. Um diese zwei Wörterbücher zu vergleichen, verwende ich isEqualToDictionary:
Methode. Die Dokumentation auf isEqualToDictionary:
sagtVergleichen NSDictionaries mit NSStrings
"Zwei Wörterbücher haben gleiche Inhalte, wenn sie jeweils die gleiche Anzahl von Einträgen und für einen bestimmten Schlüssel die entsprechenden Wert Objekte in jedem Wörterbuch erfüllen die isEqual: Test."
So werden meine Strings durch isEqual:
Methode verglichen.
Die Frage ist:
Wie funktioniert isEqual:
Arbeit für die NSString
?
Verwendet es isEqual:
von NSObject
? Ich habe gelesen, dass von NSObject
vergleicht nur Adressen, mit ==
. Um zu beweisen, oder diese Idee widerlegen ich eine Probe schrieb:
NSString *str1 = @"sampleString";
NSString *str2 = [NSString stringWithFormat:@"%@", @"sampleString"];
BOOL result = [str1 isEqual:str2];
Die result
ist YES
, die Adressen von str1
und str2
sind allerdings unterschiedlich. isEqual:
aus NSObject
(was dann?), Oder NSObject
isEqual:
tut etwas komplizierter als nur Überprüfung der Gleichheit der Adressen.
Weiß jemand, wie es wirklich funktioniert?
Warum können Sie die isEqualToString-Methode nicht verwenden? zu einfach? –
@SamBudda Es ist nicht ich, es ist NSDictionary verwendet isEqual: seine Elemente zu vergleichen. – Anastasia