我希望我的用户在注册我的应用后添加/编辑有关其个人资料的详细信息。
@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)
}
}
}
断点在user.saveInBackgroundWithBlock处停止。没有文档显示如何在注册后添加新列。
谢谢!
答案 0 :(得分:5)
您提到用户应该能够在注册后编辑他们的个人资料。使用signUpInBackgroundWithBlock
向Parse注册用户时,Parse SDK会自动为您创建PFUser
。
在您提供的代码中,您创建并保存一个全新的PFUser
,而不是获取当前登录的代码。如果您没有使用登录的PFUser
,那么您将在user.saveInBackgroundWithBlock
(您在帖子中也提到)中收到以下错误:
User cannot be saved unless they are already signed up. Call signUp first
要解决此问题,您需要更改:
var user = PFUser()
以下内容:
var user = PFUser.currentUser()!
其余代码(例如user["location"] = locationTextField.text
)工作正常,会动态/懒惰地向您的User
数据库添加新列(这就是您想要的)。
答案 1 :(得分:0)
Parse允许您懒惰地向列添加列,这意味着您可以向PFObject添加字段,如果Parse类中没有该字段,Parse将为您添加该列。
以下是如何通过代码添加列的示例:
// Add the new field to your object
yourObject["yourColumnName"] = yourValue
yourObject.saveInBackground()
您会注意到Parse会在其门户网站上创建一个名为yourColumnName
的新列。
来自HERE的参考。