2017-03-15 4 views
-1

enter image description here
Ich versuche, die Notfalldaten in in Notfall-Struktur zu analysieren, aber es statifies nie den Zustand und sich in anderen case.Here ist mein Code und structure.Some, was ich woring geschrieben in erste Linie.Frage, die sich in swift3 beim Parsen

if let emergencyDict = snapshotValue["emergency"] as? [String:[String:Any]]{ 
     for (emerId, emerData) in emergencyDict { 
      let emer = Emergency.init(emergency: emerData as NSDictionary) 
      emergency.append(emer) 
     } 
    } 
    else{ 
     let emer = Emergency.init(emerg: "" as AnyObject) 
     emergency.append(emer) 
    } 


struct Emergency{ 
var emer_id: String 
var emer_name: String 
var emer_phoneNo: String 

init(emergency: NSDictionary) { 

    if emergency.object(forKey: "id") != nil { 
     emer_id = emergency.object(forKey: "id") as! String 
    } 
    else{ 
     emer_id = "" 
    } 
    } 
} 

Antwort

1

Das Problem, das Sie emergency als Array mit Typ sind mit [Any] und wenn Sie die ersten entfernen Objekt erhalten Sie dann Array vom Typ [[String:Any]]. Also versuche es so.

if let array = snapshotValue["emergency"] as? [Any], 
    let emergencyArrar = Array(array.dropFirst()) as? [[String:Any]] { 

    print(emergencyArray) 
    for emergency in emergencyArray { 
     print(emergency) 
    } 
} 
0

Sie haben in dieser Zeile falsch geschrieben:

if let emergencyDict = snapshotValue["emergency"] as? [String:[String:Any]]{ 

Es soll:

if let emergencyDict = snapshotValue["emergency"] as? [[String:Any]]{ 
+0

Ich habe dieses versucht, aber es hat auch nicht funktioniert. –

+0

Wenn ich versuche, print (snapshotValue [ "Notfall"] ?? AnyObject.self) dann zu drucken, es o/p: ( "", { id = 1; name = Vater; PHONENO = 01828020209; }, { id = 2; name = Mutter; PHONENO = 12345678; } ) –

+0

'snapshotValue [ "Notfall"]' ist ein Array richtig? –

0

Diese Frage sollte zur Abfrage von Firebase-Datenbank gehören.

// you have to get the children in emergency, 
// then get the value(dictionary) of each child 
ref.child("emergency").observeSingleEvent(of: .value, with: { (snapshot) in 
     let value = snapshot.value as? NSDictionary 
     let keys = value?.allKeys // [1, 2, 3 ....] 

     for key in keys { 
      ref.child("emergency").child(key)..observeSingleEvent(of: .value, with: { (snapshot) in 
       let value = snapshot.value as? NSDictionary 
       // Here is your dictionary 
      } 
     } 


    }) { (error) in 
     print(error.localizedDescription) 
    }