我即将使用(并要求使用)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/