GameCenter高分不包括最近设定的分数
GameCenter high scores doesn't include recently set score
游戏结束后,报告分数(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报告高分。
- <等等>
- 收到回调表示成功。
- 从 GameCenter 请求高分。
- <等等>
- 从 GameCenter 获得高分。
从GameCenter返回的分数不包括刚刚保存的分数。请注意,在 next 运行 通过时,将返回分数。即当前高分是50。用户玩游戏,得分100。GameCenter returns 50分。用户再次玩游戏,得分 150。GameCenter returns 100 分。
我不确定这是 GameCenter 沙盒模式的 "feature",还是我应该解决的问题。
事实上,我正在从 GameCenter 中检索正确的分数子集(减去最近设置的分数)。此外,高分请求肯定是 在 GameCenter returns 成功从 reportScores
.
发出
已知游戏中心在沙盒中更新数据时存在问题,开发者在服务器上获得最低优先级。
尝试在非高峰时间测试您的代码(早上和半夜对我来说效果最好)
您可以做的另一件事是提交您的分数并不断检查排行榜直到它更新,然后再次提交以确保一切正常。
我最近在同时提交给 3 个排行榜时遇到了这个问题,只有其中一些会在我测试时更新,但是相同的代码现在已经在现实世界中运行并且没有问题。
游戏结束后,报告分数(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报告高分。
- <等等>
- 收到回调表示成功。
- 从 GameCenter 请求高分。
- <等等>
- 从 GameCenter 获得高分。
从GameCenter返回的分数不包括刚刚保存的分数。请注意,在 next 运行 通过时,将返回分数。即当前高分是50。用户玩游戏,得分100。GameCenter returns 50分。用户再次玩游戏,得分 150。GameCenter returns 100 分。
我不确定这是 GameCenter 沙盒模式的 "feature",还是我应该解决的问题。
事实上,我正在从 GameCenter 中检索正确的分数子集(减去最近设置的分数)。此外,高分请求肯定是 在 GameCenter returns 成功从 reportScores
.
已知游戏中心在沙盒中更新数据时存在问题,开发者在服务器上获得最低优先级。
尝试在非高峰时间测试您的代码(早上和半夜对我来说效果最好)
您可以做的另一件事是提交您的分数并不断检查排行榜直到它更新,然后再次提交以确保一切正常。
我最近在同时提交给 3 个排行榜时遇到了这个问题,只有其中一些会在我测试时更新,但是相同的代码现在已经在现实世界中运行并且没有问题。