Ich versuche, eine Zeichenkette auf "No Display name" zu setzen, wenn [object objectForKey @ "display_name"] NULL ist. Es stürzt damit im Log ab
%Vor% %Vor% Ein Cast ändert kein Objekt class
(type).
Sie müssen den Fall verwalten, wenn Ihr Wert [NSNull null]
ist, etwa wie folgt:
Ich habe eine Kategorie auf NSNull erstellt, funktioniert gut für mich:
%Vor%Sie möchten vielleicht so etwas:
%Vor% Und in Ihrer Frage, sollte es nicht lesen "wenn es NULL ist", sondern "wenn es eine NSNull
Instanz ist".
Ich werde meine Antwort einwerfen, um etwas zu verdeutlichen. Das Problem besteht darin, dass das Objekt im NSDictionary den Wert [NSNull null] hat (etwas anders als NULL und NULL). Das Problem kommt von einigen Bibliotheken (ein bestimmter JSON-Parser kommt mir in den Sinn), den Wert für einige Schlüssel mit NULL-Wert auf [NSNull null] setzen. Warum? Weil es manchmal erforderlich ist, in einem NSDictionary den Fall zu unterscheiden, wenn ein Schlüssel nicht vorhanden ist, wenn der Schlüssel einen NULL-Wert hat. In einem NSDictionary gibt es keine Möglichkeit zu sagen, aber JSON-Strukturen vermitteln solche Unterschiede. Wenn Sie eine a-Variable erhalten, die von einer Bibliothek oder einem Parser kommt, der dies tut, kann der Wert [NSNull null] sein. NSNull ist ein Singleton, also genügt es, nur nach Gleichheit zu suchen (Zeigergleichheit). Zum Beispiel würde ich tun:
%Vor%Ermitteln Sie, ob das Objekt null ist oder nicht, anstatt zu versuchen, aus dem Klassennamen zu folgern.
%Vor%Ich habe das zweite Argument nicht getestet, aber lesen Sie hier mehr über das Testen von null .
Tags und Links string iphone ios dictionary null