【发布时间】:2016-01-18 18:11:27
【问题描述】:
我想从 Parse 中检索用户分数并将其分配给一个变量。此函数在查询完成之前返回 0。我在Retrieve object from parse.com and wait with return until data is retrieved 找到了类似的答案。但是,我希望该函数有一个返回值,以及在调用此函数时我应该为完成处理程序使用什么参数。任何帮助将不胜感激,谢谢!
这是我的代码
func loadCurrentUserData() -> Int {
let query = PFQuery(className: "userScore")
let userId = PFUser.currentUser()!
var currentUserScore: Int = 0
query.whereKey("user", equalTo: userId)
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error == nil {
let scoreReceived = objects![0]["score"] as! Int
currentUserScore = scoreReceived
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.userScore.text = "\(scoreReceived)"
})
} else {
print("Error: \(error!) \(error!.userInfo)")
}
}
return currentUserScore
}
【问题讨论】:
-
我尝试添加信号量。
let semaphore = dispatch_semaphore_create(0)和dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER)。但是还是不行。
标签: ios swift asynchronous