Es gibt zwei Situationen:
Es ist möglich, dass ein Objekt ist [NSNull null]oder es ist unmöglich.
Ihre Anwendung sollte normalerweise nicht verwendet werden. Verwenden [NSNull null];Sie sie nur, wenn Sie ein " null " -Objekt in ein Array einfügen oder als Wörterbuchwert verwenden möchten . Und dann sollten Sie wissen, welche Arrays oder Wörterbücher Nullwerte enthalten können und welche nicht.
Wenn Sie der Meinung sind, dass ein Array niemals [NSNull null]Werte enthält , suchen Sie nicht danach. Wenn es eine gibt [NSNull null], erhalten Sie möglicherweise eine Ausnahme, aber das ist in Ordnung: Objective-C-Ausnahmen weisen auf Programmierfehler hin. Und Sie haben einen Programmierfehler, der durch Ändern von Code behoben werden muss.
Wenn ein Objekt könnte sein [NSNull null], dann überprüfen Sie diese ganz einfach durch die Prüfung
(object == [NSNull null]). Das Aufrufen isEqualoder Überprüfen der Klasse des Objekts ist Unsinn. Es gibt nur ein [NSNull null]Objekt, und der einfache alte C-Operator prüft es auf einfachste und effizienteste Weise.
Wenn Sie ein NSStringObjekt überprüfen , das nicht sein kann [NSNull null](weil Sie wissen, dass es nicht sein kann, [NSNull null]oder weil Sie gerade überprüft haben, dass es sich von unterscheidet [NSNull null], müssen Sie sich fragen, wie Sie eine leere Zeichenfolge behandeln möchten, die eine mit der Länge 0 ist Wenn es sich um eine nullZeichenfolge handelt nil, gibt test (object.length == 0). object.length 0 if zurück object == nil. Dieser Test deckt also keine Objekte und Zeichenfolgen mit der Länge 0 ab. Wenn Sie eine Zeichenfolge mit der Länge 0 behandeln, die sich von einer Nullzeichenfolge unterscheidet, überprüfen Sie einfach, ob object == nil.
Wenn Sie einem Array oder einem Wörterbuch eine Zeichenfolge hinzufügen möchten und die Zeichenfolge möglicherweise Null ist, haben Sie die Wahl, sie nicht hinzuzufügen, durch zu ersetzen @""oder durch zu ersetzen [NSNull null]. Wenn Sie es durch ersetzen, @""verlieren Sie die Fähigkeit, zwischen "no string" und "string of length 0" zu unterscheiden. [NSNull null]Wenn Sie es durch ersetzen , müssen Sie Code schreiben, wenn Sie auf das Array oder Wörterbuch zugreifen, das nach [NSNull null]Objekten sucht.