我即将使用(并要求使用)Game Center的第一个应用程序即将完成。我没有成就,只是一个高分系统。我已插入所有内容,我的应用程序已在启用了Game Center的iTunesConnect中注册,并且当我记录高分时,它会适当显示在列表中。

不起作用的一件事是“等级”。在[GKScore reportScoreWithCompletionHandler:]的完成块中,即使用户获得了新的高分,我的GKScore对象的rank属性也始终为0。

例如,在我运行的应用程序中:

GKScore *scoreReporter = [[GKScore alloc] initWithCategory:@"1"];
scoreReporter.value = 2200003; // test value
[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {

    if (error != nil)
    {
        NSLog(@"An error occured reporting the Game Center score: %@", error);
    }

    NSLog(@"Score: %@", scoreReporter);
    NSLog(@"Score: %d", scoreReporter.rank);
}];

...没有错误发生,输出为:
Score: <GKScore: 0x361a3c0><0x361a3c0> player=G:1127411264 rank=0 date=2012-02-04 22:19:52 +0000 value=2200002 formattedValue=(null) context=(null)
Score: 0

iTunesConnect中可能缺少某些内容吗?我离开沙箱后,排名会开始起作用吗?朝正确方向的任何指针将不胜感激。

最佳答案

您的代码没有错误。如果仅创建GKScore对象,则等级的值始终为0。它仅对从Game Center收到的得分对象有效。
请阅读以下文档:
https://developer.apple.com/library/ios/#documentation/GameKit/Reference/GKScore_Ref/Reference/Reference.html

关于ios - GKScore排名始终为0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9145269/

10-12 14:45