注册后向 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?