Swift 3.1 - .set Values For Keys 和 Firebase 无法检索用户

标签 swift firebase set key

所以我有这段代码可以从数据库中获取用户并将它们存储在一个数组 (drivingUsers) 中。我没有收到任何错误,但是当我运行该应用程序时它崩溃了。

 func fetchUser() {
    FIRDatabase.database().reference().child("user_profiles").observe(.childAdded, with: { (snapshot) in

        if let dictionary = snapshot.value as? [String: AnyObject] {
           let user = User()


            user.setValuesForKeys(dictionary) //Error


            self.drivingUsers.append(user)

            DispatchQueue.main.async {
                self.tableView.reloadData()
            }
        }
    }, withCancel: nil)


}

错误日志:

 2017-04-29 00:41:46.842568 VEXI[1745:369755] -[__NSCFNumber length]: unrecognized selector sent to instance 0x174a34500
 2017-04-29 00:41:46.844084 VEXI[1745:369755] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x174a34500'

有什么想法吗?

最佳答案

错误 unrecognized selector sent to instance 表示您尝试将键设置为错误类型的值。从您的代码中不清楚 User 是什么类型的对象,或者 dictionary 对象中有哪些键,但其中一个值不是 User 的类型 需要那个键。

要修复它,您需要将字典中的每个值转换为正确的类型。

关于Swift 3.1 - .set Values For Keys 和 Firebase 无法检索用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43689839/

相关文章:

ios - 如何在 Swift 中从 JSON 解析值大于 2147483647 的 Int

android - Firebase - 在不知道其成员的注册 ID 的情况下删除设备组

ios - 谷歌firebase手动数据库post approval

Java 集合/集合问题

f# - 是在 F# map 上进行迭代还是设置有序遍历?

swift - 是 iCloud 还是我的代码?

ios - 有没有办法在 firebase 中运行 Node 脚本?

swift - Firebase 调用中下标的使用不明确

ios - 我正在使用 firebase 4、swift 3 和 ios 10,但找不到 FIRAuth

java - 如何组合这些 Set<?为我的 API 扩展 Vector> 过滤函数?