2017-08-31 68 views
0

我正在使用Firebase for iOS库从数据库加载一个子数组。如何从Swift调试器访问对象嵌套属性

我在NSMutableDictionary存储snap.value如下:

var list=NSMutableDictionary() 
let students = FIRDatabase.database().reference().child("students") 
students.observe(.childAdded) { (snap:FIRDataSnapshot) in 
     self.list[snap.key] = snap.value 
} 

当我把一个断点在最后一行,我可以检查list变量的内容,并成功包含火力点全部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 

我在做什么错误?

回答

0

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

+0

但我想遍历字典中的所有项目,而不必使用密钥..有没有办法? – Ahmad

+0

如果我没有记错的话,你应该可以用'for(key,value)in dict){...} – DMan