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

Posted

技术标签:

【中文标题】注册后向 PFUser 添加列?解析,斯威夫特【英文标题】:Add column to PFUser AFTER signup? Parse, Swift 【发布时间】:2015-07-11 04:40:51 【问题描述】:

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

@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 处停止。没有文档显示如何在注册后附加新列。

谢谢!

【问题讨论】:

【参考方案1】:

您提到用户应该能够在注册后编辑他们的个人资料。当使用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 数据库添加一个新列(这是您想要的)。

【讨论】:

我很高兴能帮上忙 :)【参考方案2】:

Parse 允许您将列添加到类中,这意味着您可以向 PFObject 添加一个字段,如果 Parse 类中不存在该字段,Parse 将为您添加该列。

下面是如何通过代码添加列的示例:

// Add the new field to your object
yourObject["yourColumnName"] = yourValue
yourObject.saveInBackground()

您会注意到 Parse 将在其门户网站上创建一个名为 yourColumnName 的新列。

来自HERE 的引用。

【讨论】:

谢谢!我会试试这个,与此同时,我刚刚在注册期间创建了类的所有部分并留下了空白值,然后将它们隐藏起来,直到用户更改它们。

以上是关于注册后向 PFUser 添加列?解析,斯威夫特的主要内容,如果未能解决你的问题,请参考以下文章

添加额外的解析登录字段

使用 EF CodeF 和 mvc nugget Scaffold 发布后向 DB 添加列

解析和斯威夫特。从 Parse 关系中设置 tableViewCell 附件类型

如何在 swift 中注册使用 ParseUI 的 Facebook 按钮登录的 PFUser?

在 Swift 中链接/合并 Facebook 用户和 PFUser(解析)

如何从解析中注册通知以获取声音和警报? (在斯威夫特)