2017-08-31 6 views
0

iOSライブラリ用のFirebaseを使用して、データベースから子の配列をロードしています。Swiftデバッガからオブジェクトネストされたプロパティにアクセスする方法

次のように私はNSMutableDictionarysnap.valueを格納しています:私は最後の行にブレークポイントを置く

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 

何をしています違う?

答えて

0

これは辞書なので、インデックスではなくキーを使用してアクセスする必要があります(インデックスのようにインデックスが表示されているにも関わらず)。

+0

しかし、私はキーを使用することなく、辞書のすべての項目を反復したい。方法はありますか? – Ahmad

+0

私が正しく覚えていれば、 'for(key、value)in dict){...}'で行うことができます。 – DMan

関連する問題