我正在为我用 Swift 编写的应用程序使用 Parse。这是一个允许用户拥有个人资料的高尔夫应用程序。用户可以在编辑配置文件视图控制器上编辑配置文件,保存它,然后将它们带回主配置文件视图控制器。我遇到的问题是,如果用户更改了他们的个人资料图像并保存它,图像不会在主个人资料视图控制器上更新,但新的个人资料信息的其余部分是。我的信念是 Parse 查询的时间已经结束,并且图像没有及时返回。这是我对我的主要个人资料页面的查询。我尝试使用“dispatch_async”方法,但这似乎不起作用。提前致谢。
func getProfileFromBackground() {
profileData.removeAll()
if let userQuery = PFUser.query() {
userQuery.whereKey("username", equalTo: (PFUser.currentUser()?.username)!)
userQuery.findObjectsInBackgroundWithBlock({ (currentUserProfile:[PFObject]?, error: NSError?) -> Void in
if error == nil {
for object:PFObject in currentUserProfile! {
self.profileData.append(object)
for data in self.profileData {
dispatch_async(dispatch_get_main_queue()) {
self.golferNameLabel.text = data.objectForKey("name") as? String
self.usernameLabel.text = "Username: \(data.objectForKey("username")!)" as String
self.golferProfileImage.file = data.objectForKey("profileImage") as? PFFile
self.golferProfileImage.loadInBackground()
}
}
}
} else {
print(error)
}
})
}
}