我的项目处理 使用iPhone游戏中心功能的应用程序。在我学习的过程中,我使用了以下Apple文档中的示例:
- (void) retrieveTopTenScores
{
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
if (leaderboardRequest != nil)
{
leaderboardRequest.playerScope = GKLeaderboardPlayerScopeGlobal;
leaderboardRequest.timeScope = GKLeaderboardTimeScopeToday;
leaderboardRequest.identifier = @"Combined.LandMaps"
leaderboardRequest.range = NSMakeRange(1,10);
[leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
{
// Handle the error.
}
if (scores != nil)
{
// Process the score information.
}
}];
}
}
原则上它工作正常:我得到一个非零分数数组;使用一个GKscore对象。
但是,即使游戏中心显示有一个分数,此GKScore对象也为零。
我已尝试登录并退出游戏中心以刷新手机GC的得分数据,但我仍然可以看到我的得分10.000(作为我自己的GC登录)但是每次我尝试以编程方式检索它总是将null作为分数对象返回...
对我有任何提示或指示你可以指出我吗?
答案 0 :(得分:1)
代码工作正常;看起来Game Center服务器有一个刷新时间。昨天,得分确实出现在我的手机本地,但显然没有在Game Center服务器上更新。今天早上尝试工作正常,看起来分数数据最终也在服务器上更新;得到的GKScore不再为空。
虽然很有意思但是当Game Center服务器与iPhone不同步时,它仍会返回非零分数列表,只有GKScore没有结果...如果你的游戏中心有几个分数,我猜你没有看到没有GKScore但是过去几天的得分而不是最近的得分。