如何阅读具有多个条目的NSDictionary

时间:2019-05-17 21:32:16

标签: swift firebase

我从NSDictionary读取数据时遇到问题,我用从Firebase检索的数据填充了该数据。我在Firebase中的数据如下所示:

{
  "eventos" : {
    "BuyYQy2q7ZWCYTrHbF6rN9iNYA13" : {
      "-Lf1HNjFh1QVYMzSph5b" : {
        "areaMetro" : true,
        "date" : "16/06/2019",
        "direction" : "zavaleta",
        "endHour" : "18:15",
        "eventCategory" : 1,
        "giosNumber" : 2,
        "initialHour" : "16:15",
        "ladiesNumber" : 1
      },
      "-Lf6G5X_ERKxo9okcu-r" : {
        "areaMetro" : false,
        "date" : "17/07/2019",
        "direction" : "San Petter",
        "endHour" : "16:15",
        "eventCategory" : 2,
        "giosNumber" : 1,
        "initialHour" : "14:30",
        "ladiesNumber" : 12
      }
    }
  }
}

我想要的是用用户可能发生的所有事件的方向填充Stings数组。

我将检索到的数据保存到NSDictionary中,但是当我尝试读取每个键的每个“方向”值时,我得到一个错误

 ref.child("eventos").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in
            // Get user value
            let value = snapshot.value as? NSDictionary     
            var aux = value![0]
            for (key, values) in value!{
                values
                arrayEventos.append(values["direction"])
            }
        }) //Fin Closure

该代码是尝试执行此操作的几种尝试之一,但是在这种情况下,我会收到此错误:类型“ Any”没有下标成员

!!!更新

我已经解决了,也许不是最好的方法,如果您知道更好的方法,请分享一下,我将在下面发布代码。谢谢。

ref.child("eventos").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in
            for child in snapshot.children {
                let snap = child as! DataSnapshot
                let placeDict = snap.value as! [String: Any]
                let info = placeDict["direction"] as! String
                arrayEventos.append(info)
                print(arrayEventos.last)
            }
        })
        { (error) in
            print(error.localizedDescription)
        }//Fin Closure

0 个答案:

没有答案