2017-04-01 5 views
0

- 私は、私はこのエラーを得続けるcollectionViewには私が

を一人の子供からのすべての値を取得しようとcollectionView子からすべての値を取得し

は、この行にタイプ「__NSDictionaryM」の値をキャストできませんでしたここ

let follower = snapshotValue!["Followers"] as! String 

私のコードはWで

followRef.child("users").child((FIRAuth.auth()?.currentUser?.displayName)!).observe(FIRDataEventType.value, with: { 
      snapshot in 
      let snapshotValue = snapshot.value as? Dictionary<String,AnyObject> 
      let follower = snapshotValue!["Followers"] as! String 
      self.postsFollow.insert(postFollowStruct(follower: follower) , at: 0) 
      self.followersView.reloadData() 
      }) 

答えて

0

です帽子あなたのスナップショットに多くのjsonオブジェクトがあることを理解しています。次に、それぞれのオブジェクトにキャストして配列に入れたいとしますか?

if let dict = snapshot.value as? [String: AnyObject]{ 
        let followers = dict 
        for follower in followers { 
         if let restDict = follower.value as? [String:AnyObject] { 
          let followerObj = Follower() 
          followerObj.setValuesForKeys(restDict) 
          //add to array 
         } 
        } 
       } 
+0

Follower()は、 –

+0

@CarstenHøvsgaard、そのクラスオブジェクト。フォロワー()はそれをインスタンス化する方法です。 setValuesForKeys(restDict)を呼び出すと、そのプロパティに値が適用されます。 restDictに値 "Carsten"のキー "Name"がある場合、followerObjはそれらの値を持ちます。あなたのクラスには "Name"というプロパティがなければなりません。それはクラッシュします。次に、そのオブジェクトをコレクションビューに提供します。もしあなたがしたいことがあれば。 –