我从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