Ich möchte Daten vom JSON-Dienst erhalten. Nur die iOS 7-Version stürzt ab, wenn Daten vom JSON-Wert abgerufen werden. Es kommt von JSON-Service unter dem folgenden zurück:
%Vor%Mein Code
%Vor%Es funktioniert für iOS 5.5.1.6.0,6.1, aber es stürzt nur iOS7-Version ab. Es gab diesen Fehler:
0x00098117 _mh_execute_header [NSNull intValue]: nicht erkannter Selektor an Instanz gesendet
Dann habe ich meinen Code darunter geändert;
%Vor%Wenn dieser Code ausgeführt wird. Es stürzte nur noch iOS 7 Version ab. Es gab diesen Fehler:
0x00098117 _mh_execute_header [NSNull Länge]: nicht erkannter Selektor an Instanz gesendet
Wie kann ich dieses Problem lösen?
Setzen Sie einen Haken, bevor Sie den Wert von JSON wie,
aufrufen %Vor% Grund für die Überprüfung ist, dass Auflistungsobjekte wie NSDictionary
keine Werte als nil
zulassen, daher werden sie als null gespeichert. Die Übergabe von intValue
an NSNull
funktioniert nicht, da dieser Selektor nicht erkannt wird.
Hoffe das hilft!
Wie die anderen bereits gesagt haben, wird JSON null zu NSNull
deserialisiert. Im Gegensatz zu nil
können Sie (die meisten) Nachrichten nicht an NSNull
senden.
Eine Lösung besteht darin, eine Implementierung von -intValue auf NSNull über category hinzuzufügen:
%Vor% Nun wird Ihr Code funktionieren, da das Senden von -intValue
an NSNull
jetzt 0
Eine andere Option: Sie könnten NSObject ... auch eine "IfNullThenNil" -Kategorie hinzufügen.
%Vor%Nun wird Ihr Code:
%Vor% Fügen Sie einfach einen Aufruf zu -ifNullThenNil
hinzu, wenn Sie auf Werte von einem JSON-Objekt zugreifen.
Für mich ist das funktioniert
%Vor%Ich hoffe, es hilft jemandem. Wenn Sie Hilfe brauchen, lassen Sie es mich wissen.
Das ist ganz normal. JSON kann Nullwerte an Ihre App senden. Wenn dies der Fall ist, geschieht dies absichtlich vom Server und erwartet, dass Sie damit umgehen. Finden Sie heraus, was das richtige Verhalten ist, wenn ein Nullwert empfangen wird. Wenn Sie ein Objekt erhalten, das ein Nullwert sein könnte, überprüfen Sie
%Vor%Das eigentliche Problem ist nicht, dass Ihre App abstürzt, sondern dass Ihre App keine JSON-Daten verarbeitet, mit denen sie umgehen soll.
Tags und Links objective-c iphone ios json ios7