0
내 GameCenterHelper 클래스에 다음 코드를 다룰 수있었습니다. 그러나 나는 스위프트의 블록과 완성 된 핸 들러들과 완전히 잃어 버렸다. 누군가가 비동기적인 completionHandler에 의해 제공된 데이터에 접근하는 코드 예제를 도착한 순간에 게시 할 수 있습니까?비동기 호출에서 제공 한 데이터를 Swift에서 UI에 표시하는 방법은 무엇입니까?
class ShowHighscoresScene: SKScene {
override init(size: CGSize) {
super.init(size: size)
gameCenter.getHighscores()
//what kind of parallel-thread-completionHandler-thingy goes here so I can show the highscores when the arrive, if the player is still using this scene?
}
...
}
class GameCenterHelper {
...
func getHighscores() {
leaderboardReceived = nil
let leaderboardRequest = GKLeaderboard() as GKLeaderboard!
leaderboardRequest.identifier = "appId"
if leaderboardRequest != nil
{
leaderboardRequest.loadScoresWithCompletionHandler({ (scores:[AnyObject]!, error:NSError!) -> Void in
if (error != nil)
{
println("error in leaderboard highscore request")
println(error.description)
}
else
{
self.leaderboardReceived = leaderboardRequest
}
})
}
}
...
는 메인 스레드에 그 파견해야합니다. getHighScores를 변경하여 클로저 자체를 취하는 것이 더 나을 수도 있습니다. – Rob