Nur iOS 7 abstürzt [NSNull intValue]: Unerkannter Selektor an Instanz gesendet

9

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?

    
SukruK 19.09.2013, 06:38
quelle

4 Antworten

37

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!

    
Amar 19.09.2013, 06:41
quelle
6

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

zurückgibt

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.

    
nielsbot 24.02.2014 08:36
quelle
1

Für mich ist das funktioniert

%Vor%

Ich hoffe, es hilft jemandem. Wenn Sie Hilfe brauchen, lassen Sie es mich wissen.

    
Narasimha Nallamsetty 30.06.2015 13:18
quelle
0

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.

    
gnasher729 24.02.2014 08:23
quelle

Tags und Links