【问题标题】:Retrieve all values from child i collectionView从子 i collectionView 中检索所有值
【发布时间】:2017-04-01 18:56:12
【问题描述】:

我正在尝试将一个孩子的所有值检索到一个 collectionView 中

我不断收到此错误

无法在此行中转换类型为“__NSDictionaryM”的值

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

这是我的代码

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()
            })

【问题讨论】:

    标签: swift firebase uicollectionview indexpath


    【解决方案1】:

    据我了解,您的 snapshot.value 中有许多 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
                            }
                        }
                    }
    

    【讨论】:

    • @CarstenHøvsgaard,它是一个类对象。 Follower() 是实例化它的方法。然后调用 setValuesForKeys(restDict) 将值应用到它的属性。如果restDict 的键“Name”的值为“Carsten”,那么followerObj 将具有这些值。您的班级中必须有属性“名称”,否则它会崩溃。然后将该对象提供给您的 collectionView。如果那是你想做的。
    猜你喜欢
    • 1970-01-01
    • 2017-07-13
    • 2019-07-18
    • 1970-01-01
    • 2011-10-09
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多