[英]GameCenter high scores doesn't include recently set score
游戲結束后,將reportables
分數( reportables
對象是GKScore
對象的數組):
GKScore.reportScores(reportables, withCompletionHandler: {(error) -> Void in
if (error != nil) {
Log.INFO("reportScores callback: \(error)")
} else {
Log.INFO("reported score")
self.populate_high_scores(leaderboard)
}
})
populate_high_scores
設置對GKLeaderboard
請求,然后發出調用以檢索高分:
request.loadScoresWithCompletionHandler({(scores, error) -> Void in
self.populate_high_scores_handler(scores, error: error)
})
所以要刷新:
從GameCenter返回的分數不包括剛剛保存的分數。 請注意, 在下一次運行中,將返回分數。 例如,當前的最高分是50。用戶玩游戲時獲得100分。GameCenter返回50分。 用戶再次玩游戲,獲得150分。GameCenter返回100分。
我不確定這是否是GameCenter沙盒模式的“功能”,還是我應該解決的問題。
實際上,我是從GameCenter檢索分數的正確子集(減去最近設置的分數)。 此外,肯定會在 GameCenter從reportScores
成功返回后發出高分請求。
眾所周知,游戲中心在更新數據時遇到問題,而在沙箱中,開發人員在服務器上的優先級最低。
嘗試在非高峰時間測試您的代碼(早上和半夜最適合我)
您可以做的另一件事是提交分數並不斷檢查排行榜,直到更新為止,然后再次提交以確保一切正常。
最近我同時提交給3個排行榜時遇到了這個問題,在我進行測試時,只有其中一些會更新,但是相同的代碼現在已經存在於現實世界中,並且可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.