我正在使用Firebase for iOS库从数据库中加载一系列子项。
我将snap.value
存储在NSMutableDictionary
中,如下所示:
var list=NSMutableDictionary()
let students = FIRDatabase.database().reference().child("students")
students.observe(.childAdded) { (snap:FIRDataSnapshot) in
self.list[snap.key] = snap.value
}
当我在最后一行放置一个断点时,我可以检查list
变量的内容,并且它成功地包含来自firebase的所有8个子节点。
我试过这个:
(lidb) po list.count
>> 8
所以我尝试通过输入以下内容从元素3中检索名称/年龄:
(lidb) po list[3]
>> nil
(lidb) po list[3]["value"]["name"]
>> error: <EXPR>:3:8: error: type 'Any?' has no subscript members
(lldb) po (list[3] as? Dictionary<String,Any?>)
>> nil
(lldb) po (list[3] as? Dictionary<String,Any?>)["value"]
>> nil
我做错了什么?
答案 0 :(得分:0)
这是一个字典,所以你应该使用密钥而不是索引来访问它(尽管调试器显示索引使它看起来像一个数组)。