【发布时间】:2015-04-08 15:03:29
【问题描述】:
我创建了一个带有 Parse Log In 功能的简单 iPhone 应用程序。然后,我有一个按钮链接到的页面,登录用户可以在该页面上查看他们的个人资料。
为了获取此信息并将其加载到配置文件页面中,我从 viewDidLoad() 调用以下 loadData() 函数:
func loadData() {
// DISPLAY PICTURE CODE
dpImage.image = UIImage(named: "profilePlaceholder")
dpImage.layer.cornerRadius = 50
dpImage.layer.masksToBounds = true
// Get and set Name and Degree
fullNameLabel.text = PFUser.currentUser()["fullName"] as? String
degreeLabel.text = PFUser.currentUser()["degree"] as? String
// Check degreeYear of user and create String
var degreeYear = String(PFUser.currentUser()["degreeYear"] as Int)
if (degreeYear == "1") {
degreeYear += "st Year"
} else if (degreeYear == "2") {
degreeYear += "nd Year"
} else if (degreeYear == "3") {
degreeYear += "rd Year"
} else {
degreeYear += "th Year"
}
// Get Group Contribution Rating and add % sign
var groupContribution = String(PFUser.currentUser()["groupContribution"] as Int) + "%"
// Set labels of cells
emailCell.detailTextLabel?.text = PFUser.currentUser().email
institutionCell.detailTextLabel?.text = PFUser.currentUser()["institution"] as? String
yearOfDegreeCell.detailTextLabel?.text = degreeYear
groupContributionCell.detailTextLabel?.text = groupContribution
}
这很好用。然后我在个人资料页面上有一个编辑按钮,它链接(模态转场)到几乎相同的页面,但每个属性都有文本字段而不是标签。
在此配置文件编辑页面上,单击“保存”会运行以下命令:
@IBAction func saveAction(sender: AnyObject) {
PFUser.currentUser()["fullName"] = fullNameTextField.text
PFUser.currentUser()["degree"] = degreeNameTextField.text
PFUser.currentUser().email = emailTextField.text
PFUser.currentUser()["institution"] = institutionTextField.text
self.dismissViewControllerAnimated(true, completion: nil)
}
Profile 页面的 viewDidAppear 函数再次运行 loadData() 函数刷新标签上的数据,成功将标签更新为更改后的值。
但是!我的问题是它似乎实际上并没有将我的更改上传到 Parse 数据库。这是因为当我以同一用户的身份注销并重新登录应用程序时,我看不到新更新的配置文件属性值,而是看到更改之前的原始值。
如何将我在“编辑个人资料”页面中所做的更改推送回 Parse 服务器?
注意:这是我在 StackOverflow 上的第一篇文章,如果我不够清楚,请告诉我 :)
【问题讨论】:
-
尝试保存当前用户:[[PFUser currentUser] saveInBackground];
标签: ios iphone swift parse-platform xcode6