Es ist ein bisschen falsch mit dem Beispiel, das Sie oben angegeben haben, aber um Sie in die richtige Richtung zu bringen, lassen Sie mich Ihnen einen Rat geben und eine schnelle Lösung für Ihr Problem.
Zunächst einmal, starten Sie Ihre Variablen nicht mit einem Großbuchstaben. Es ist keine feste Regel oder irgendetwas, aber es ist besser, camelCase zu verwenden, da es Ihren Code lesbarer macht und Verwirrung vermeidet.
Zweitens, Sie tun viel Kraft Gießen und zwingen das Auspacken von optionalen Werten, die Ihre Anwendung anfällig für Abstürze aufgrund der gleichen Fehler machen Sie jetzt bekommen. Ich würde einen Blick auf das Folgende für einige bessere Anleitung werfen: https://stackoverflow.com/a/25195633/4660602
Drittens, wenn Sie auf SO, bitte stellen Sie sicher, dass Sie klar Ihre Frage Kontext als einige Benutzer möglicherweise glauben, dass Sie eine Frage stellen, was optionals
sind und warum Sie erhalten den fatal error: unexpectedly found nil while unwrapping an Optional value
Fehler.
Mit diesem gesagt, in der Zukunft bitte sehen Sie sich die SwiftyJSON Dokumente, wie sie ziemlich deutlich zeigen, wie die Bibliothek zu verwenden. Der Grund, warum Ihr Code nicht funktioniert, liegt darin, dass Sie den JSON nicht korrekt verarbeiten. Hier ist ein aktualisiertes Beispiel:
let StringUrl = NSURL(string: url) as NSURL!
let Data = NSData(contentsOfURL: StringUrl) as NSData!
let ReadableData = JSON(data: Data)
let chatUsers = ReadableData["chatUsers"].arrayValue
let result = chatUsers[0]["id"].stringValue
oder wenn Sie alle Nutzer zu durchlaufen:
let StringUrl = NSURL(string: url) as NSURL!
let Data = NSData(contentsOfURL: StringUrl) as NSData!
let ReadableData = JSON(data: Data)
for chatUser in ReadableData["chatUsers"]{
print(chatUser.1["id"].stringValue)
}
Bitte beachten Sie, ich nicht aktualisieren Sie Ihre Variablenbezeichner auf die richtige Konvention zum Zwecke der nicht verwirrend Sie, aber Sie sollten wirklich die richtige Konvention folgen, wie ich in meinem ersten Punkt erwähnt habe.
Viel Glück.
BEARBEITEN: Vergessen Sie zu erwähnen, dass Ihr JSON falsch formatiert ist. Bitte korrigieren Sie Ihre JSON-Daten im richtigen JSON-Format, damit SwiftyJSON sie korrekt interpretieren kann. Sie erhalten den Index außerhalb des gültigen Bereichs, da SwiftyJSON NICHT weiß, dass chatUsers
ein Array ist, da die eckigen Klammern in doppelte Anführungszeichen eingeschlossen sind, wenn dies nicht der Fall sein sollte. So
"chatUsers":"[
{"id":"5","sender_id":"6","receiver_id":"1","content":"hi","datetime":"2016-11-19 00:00:00"},
{"id":"4","sender_id":"1","receiver_id":"2","content":"hello","datetime":"2016-11-11 00:00:00"},
{"id":"2","sender_id":"1","receiver_id":"3","content":"how are you","datetime":"2016-11-04 00:00:00"}
]"
sollte für Schritt
"chatUsers": [
{"id":"5","sender_id":"6","receiver_id":"1","content":"hi","datetime":"2016-11-19 00:00:00"},
{"id":"4","sender_id":"1","receiver_id":"2","content":"hello","datetime":"2016-11-11 00:00:00"},
{"id":"2","sender_id":"1","receiver_id":"3","content":"how are you","datetime":"2016-11-04 00:00:00"}
]
Set Breakpoint, Debug-Schritt. herausgefunden, welche 0 ist null – antonio081014
JSON-Format ist falsch, warum Rückwärts Schrägstrich zu jedem Schlüssel und Wert hinzugefügt wird, keine Notwendigkeit, diese –
hinzufügen Mögliche Duplikat von [Was bedeutet "fataler Fehler: unerwartet gefunden Null beim Auspacken eines optionalen Werts" bedeuten? ] (http: // Stapelüberlauf.com/questions/32170456/was-tut-fatal-error-unerwartet-gefunden-nil-while-unwrapping-eine-optional-Wert) – rmaddy