在注册后向PFUser添加列?解析,斯威夫特

ish*_*r88 1 ios parse-platform swift pfuser

我希望我的用户在注册我的应用后添加/编辑有关其个人资料的详细信息.

@IBAction func doneEditting(sender: AnyObject) {
    self.completeEdit()
}

func completeEdit() {
    var user = PFUser()
    user["location"] = locationTextField.text

    user.saveInBackgroundWithBlock {
        (succeeded: Bool, error: NSError?) -> Void in
        if let error = error {
            let errorString = error.userInfo?["error"] as? NSString
            println("failed")
        } else {
            self.performSegueWithIdentifier("Editted", sender: nil)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

断点在user.saveInBackgroundWithBlock处停止.没有文档显示如何在注册后添加新列.

谢谢!

Kum*_*uzz 5

您提到用户应该能够在注册后编辑他们的个人资料.使用Parse注册用户时signUpInBackgroundWithBlock,Parse SDK将自动PFUser为您创建.

在您提供的代码中,您创建并保存一个全新的代码,PFUser而不是获取当前登录的代码.如果您没有使用PFUser登录的那个,那么您将收到以下错误user.saveInBackgroundWithBlock(您也在提及后):

User cannot be saved unless they are already signed up. Call signUp first
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您需要更改:

var user = PFUser()
Run Code Online (Sandbox Code Playgroud)

以下内容:

var user = PFUser.currentUser()!
Run Code Online (Sandbox Code Playgroud)

其余代码(例如user["location"] = locationTextField.text)工作正常,将动态/懒惰地向User数据库添加新列(这是您想要的).