2017-03-15 6 views
-1

enter image description here
응급 구조를 응급 구조로 파싱하려고하지만 상태를 확증하지 않고 다른 경우로 들어 가지 않습니다. 여기 내 코드와 구조가 있습니다. 내가 작성한 것 중 일부는 첫 번째 줄.swift3에서 파싱 문제가 발생했습니다.

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

그것은해야한다 : :이 줄을 잘못 쓴

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 = "" 
    } 
    } 
} 

답변

1

당신이 유형 [Any]와 배열로 emergency을 갖는 첫 번째를 제거하면되는 문제 그러면 객체 배열이 [[String:Any]]이됩니다. 이렇게 이렇게 해보십시오.

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

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

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

나는 이것을 시도했지만 효과가 없었다. –

+0

의 I/P 인 것이 O를 다음 을 (snapshotValue [ "긴급"] ?? AnyObject.self)를 인쇄를 수행하는 것을 시도하고있다 때 : ( "" { ID = 1; NAME = 아버지; PHONENO = 01828020209; }, { ID = 2] = 어머니 이름 ; PHONENO = 12345678; } ) –

+0

'snapshotValue [ "긴급"] '배열 권리? –

0

이 질문은 firebase 데이터베이스의 쿼리에 속해야합니다.

// 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) 
    } 
관련 문제