如何从Swift调试器访问对象嵌套属性

时间:2017-08-31 21:15:43

标签: ios swift firebase firebase-realtime-database

我正在使用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个子节点。

enter image description here

从调试器

我试过这个:

(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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是一个字典,所以你应该使用密钥而不是索引来访问它(尽管调试器显示索引使它看起来像一个数组)。