GameCenter:检索分数:空分对象?

时间:2014-05-03 21:55:29

标签: iphone xcode game-center

我的项目处理  使用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作为分数对象返回...

对我有任何提示或指示你可以指出我吗?

1 个答案:

答案 0 :(得分:1)

代码工作正常;看起来Game Center服务器有一个刷新时间。昨天,得分确实出现在我的手机本地,但显然没有在Game Center服务器上更新。今天早上尝试工作正常,看起来分数数据最终也在服务器上更新;得到的GKScore不再为空。

虽然很有意思但是当Game Center服务器与iPhone不同步时,它仍会返回非零分数列表,只有GKScore没有结果...如果你的游戏中心有几个分数,我猜你没有看到没有GKScore但是过去几天的得分而不是最近的得分。