2016-10-19 20 views
0

私はこれを完全には解決できないわけではありませんが、適切かつ不適切な方法があり、欠陥のある方法を使用したくありません。私はfirebaseからこのスナップショットを持っている、と私はそうとNSDictionaryのように宣言:NSDictionariesから別の変数に値を取得する適切な方法

commentText = Fififgkffy; 
    postedBy = USXhV0QYkpbSzAmXgfeteXHuoqg2; 
    commentText = Fhzifigh; 
    postedBy = USXhV0QYkpbSzAmXgfeteXHuoqg2; 

CommentDictは常に次のようになります。私はcommentDictを印刷するとき

let commentDict = commentsDictionary.value as? NSDictionary 

それはこのようになります。それは常に2つの項目があります。アイテムをつかんで変数に割り当てる適切な方法を知りたい。一つ私が前に使用している方法が、ちょうど一つの項目には、forループでこれを置くことである:

if name as! String == "postedBy" { 

それから私は「postedBy」辞書項目の値を取得します。しかし、2つのアイテムを持っている場合、私はcommentTextとpostedBYのための少しの配列を作る必要があり、それぞれ2つの項目を持つ2つの配列を持っていますか?もう1つの重要な点は、これらがそれぞれのグループにとどまることです。どの「commentText」が最初のグループで、2番目のグループが「postedBy」であるかを把握しておく必要があります。

長期的には、私はcommentText1、postedBy1、commentText2、postedBy2をすべて別々のString変数として終わらせる必要があります。

+0

NSDictionaryの配列にキャストできますか? 'commentDict'の値は' [] 'でなければなりません。 – xmhafiz

+0

firdatasnapshotやw/eをnsdictionaryに変換すると、それは2つの別々の辞書のようなものか、それとも私が奇妙なのかわからない –

+0

1つの大きな辞書として扱うことができるものを知っている。私がcommentDictのfor(name、value)のようなforループを使用して、値を出力すると、すべての値が出力されるので、4つの値が出力されます。私はちょうど列の配列にそれらの4つを置くことができたtbh私は彼らがどのように順不同になるか分からないという意味です。 –

答えて

0

これは私がやったことですが、より適切な方法があるかどうかを知りたいだけです。配列が正しく充填されていることを確認するために、いくつかの安全if文をこのメソッドに入れなければならないかもしれません。

if let commentDict = commentsDictionary.value as? NSDictionary { 
    for(name, value) in commentDict { 
      commentInfoArray.append(value as! String) 
    } 
    let comment1Text = commentInfoArray[0] 
    let comment1User = commentInfoArray[1] 
    let comment2Text = commentInfoArray[2] 
    let comment2User = commentInfoArray[3] 
} 
0

それはあなたがあなたの構造としてこれを使用してみてくださいを探しているということだけpostedBycommentText関係だ場合: -

USXhV0QYkpbSzAmXgfeteXHuoqg2 : comment1 : true, 
            comment2 : true, 
    //postedById : [postText] 

次に、あなたの検索でにデータを追加するために辞書を使用します: -

db_Ref.child(userID).observeSingleEvent(of: .value, with: {(snap) in 

     if let commentDict = snap.value as? [String:AnyObject]{ 

      for each in commentDict{ 

       print(each.key) // Append your key here 

      } 
     } 
    }) 
+0

あなたはそれを撃ったのですか? – Dravidian

関連する問題