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)
}
})
}
}