我正在开发一个带有登录屏幕的简单应用程序。在我的视图控制器(LoginViewController)的代码中,我创建了以下函数,该函数应允许用户注册。但是,当我测试应用程序时,控制台会告诉我“由于格式不正确,无法读取数据。”

@IBAction func onSignUp(_ sender: Any) {
    let newUser = PFUser()

    newUser.username = usernameField.text as String!
    newUser.password = passwordField.text as String!
    newUser.signUpInBackground { (success: Bool, error: Error?) in
        if success {
            print("Created User")
        } else {
            print(error!.localizedDescription)
        }
    }
}


我怀疑即时通讯遇到某种类型的错误?文本字段是否需要字符串以外的其他数据类型?知道为什么会这样吗?任何已知的解决方案?

最佳答案

这两行有点奇怪:

newUser.username = usernameField.text as String!
newUser.password = passwordField.text as String!


PFUser上的usernamepassword变量是隐式未包装的可选变量吗?即使那样,我们通常也不会在Swift中编写这样的代码。我们可能会按照以下方式写一些东西:

    @IBAction func onSignUp(_ sender: Any) {

        guard let usernameText = usernameField.text, let passwordText = passwordField.text else {return}
        let newUser = PFUser()
        newUser.username = usernameText
        newUser.password = passwordText
        newUser.signUpInBackground { (success: Bool, error: Error?) in
            if success {
                print("Created User")
            } else {
                print(error!.localizedDescription)
            }
        }
    }


试试看

10-06 16:04
查看更多