Was ist der Unterschied zwischen isEqual:
und isEqualToString:
?
Warum fügen Klassen isEqualTo * -Methoden hinzu (isEqualToArray für NSArray, isEqualToData für NSData, ...), anstatt nur zu überschreiben isEqual:
?
quelle
Was ist der Unterschied zwischen isEqual:
und isEqualToString:
?
Warum fügen Klassen isEqualTo * -Methoden hinzu (isEqualToArray für NSArray, isEqualToData für NSData, ...), anstatt nur zu überschreiben isEqual:
?
isEqual:
vergleicht eine Zeichenfolge mit einem Objekt und gibt zurück, NO
wenn das Objekt keine Zeichenfolge ist. isEqualToString:
ist schneller, wenn Sie wissen, dass beide Objekte Zeichenfolgen sind, wie in der Dokumentation angegeben :
Besondere Überlegungen
Wenn Sie wissen, dass beide Objekte Zeichenfolgen sind, können Sie mit dieser Methode die Gleichheit schneller überprüfen als
isEqual:
.
isEqualTo<Class>
wird verwendet, um spezifische Gleichheitsprüfungen durchzuführen. Zum Beispiel; isEqualToArray:
Überprüft, ob die Arrays eine gleiche Anzahl von Objekten enthalten und ob die Objekte an einem bestimmten Index YES
für den isEqual:
Test zurückgegeben werden.
Zum Schreiben Ihrer eigenen
-isEqual:
und-isEqualTo<Class>:
Methoden besteht die Konvention außerdem darin, keine Argumente für null Argumente zuzulassen-isEqual:
und eine Ausnahme für null Argumente auszulösen-isEqualTo<Class>:
quelle
Ich vermute, dass es eine leichte Leistungssteigerung bietet, wie isEqualToString: Sie müssen nicht überprüfen, was übergeben wurde.
quelle
Erweitern Sie die Antworten von @Abizern und @Jonathan Dann
isEqual
undisEqualToString
arbeiten Sie mitnil
Werten.quelle
Ich empfehle dieses . Die Leistungsvorteile von isEqualToString sind für die meisten Anwendungen grundsätzlich vernachlässigbar. Der Autor erwähnt jedoch noch zwei weitere Unterschiede:
nil
wird gehandhabtquelle