Momentan schreibe ich eine App (Target iOS 6, ARC aktiviert), die JSON für die Datenübertragung und Core Data für den persistenten Speicher verwendet. Die JSON-Daten werden aus einer MySQL-Datenbank mit einem PHP-Skript über json_encode generiert.
Mein Problem ist, dass mit Daten aus bestimmten Tabellen der folgende Code fehlschlägt:
%Vor%Das Programm stürzt immer mit einem EXC_BAD_ACCESS-Fehler in der Zeile ab, in der "self.jsonSerializationResult" steht und "Instruments" sagt, dass ein Zombie gefunden wurde. Ich weiß, dass dies bedeutet, dass ein Objekt, an das ich eine Nachricht sende, gleich Null ist, aber ich kann nicht herausfinden, wie ich es beheben kann ... Das ist was Instrument zu sagen hat:
%Vor%Mein Programm arbeitet mit jeder JSON-Ausgabe außer dieser:
%Vor%Ich habe über einen möglichen Fehler nachgedacht, aber keiner scheint der Verantwortliche zu sein:
Hat jemand eine Idee?
Es sieht aus wie ein Fehler / Fehler mit NSJSONSerialization
. Das Problem wird durch die Unicode-Zeichen verursacht ( freie_pl\u00e4tze
anstelle von freie_plätze
). Sie haben zwei Möglichkeiten -
JSONKit
beansprucht auch mehr Leistung als NSJSONSerialization
. Ich weiß, dass diese Frage beantwortet wurde, aber ich denke, dass einige Anfänger das gleiche Problem wie ich haben und zu dieser Frage gebracht werden können.
Die Nachricht EXC_BAD_ACCESS wurde von falsch formatiertem JSON verursacht. Da ich versehentlich den gleichen Namen für ein Objekt verwendet habe, was Probleme beim Konvertieren des JSON in ein Wörterbuch verursacht.
Ärgerlich brachte es keinen Formatierungsfehler hervor. Hier ist ein Beispiel für den JSON, der das Problem verursacht hat:
%Vor%Um das Problem zu beheben, musste ich sicherstellen, dass alle Objekte der gleichen Ebene unterschiedliche Namen hatten.
Habe gerade NSJSONSerialization getestet. Mit iOS 7.1. Es funktioniert. Kein Problem gefunden. Sieht aus wie Apple das Problem behoben.
%Vor%Tags und Links xcode json nsjsonserialization ios6 exc-bad-access