使用沙盒游戏中心。
无论我做什么,分数都不会出现在排行榜中。
我使用以下代码:
- (void)scoreReported: (NSError*) error {
NSLog(@"%@",[error localizedDescription]);
}
- (void)submitScore{
if(self.currentScore > 0)
{
NSLog(@"Score: %lli submitted to leaderboard %@", self.currentScore, self.currentLeaderBoard);
[gameCenterManager reportScore: self.currentScore forCategory: self.currentLeaderBoard];
}
}
得分报告并没有产生错误,但得分并没有出现在排行榜中。我知道该类别是正确的,因为我使用currentLeaderBoard:
- (void)showLeaderboard {
NSLog(@"leaderboard = %@", self.currentLeaderBoard);
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != NULL)
{
leaderboardController.category = self.currentLeaderBoard;
//leaderboardController.category = nil;
leaderboardController.timeScope = GKLeaderboardTimeScopeWeek;
leaderboardController.leaderboardDelegate = self;
[self presentModalViewController: leaderboardController animated: YES];
}
}
我试过平时 2个不同的沙盒GC帐户,以使排行榜工作 甚至尝试了4个不同的GC帐户,每个帐户都登录模拟器(iOS 6.1)和设备(iOS 6.0.1) 但仍然没有快乐
任何建议 - 或者只是沙盒游戏中心太多了! (我会提出一个关于沙箱的错误,但苹果错误报告表中有一个错误,所以它也不起作用)
答案 0 :(得分:4)
即使在沙盒模式下,对游戏中心的分数报告几乎立刻也能正常工作。
以下是您可以尝试的一些事项
答案 1 :(得分:2)
对于那些想知道我将submitScore方法更改为:
的人 - (void)submitScore {
GKScore * GCscore = [[GKScore alloc] initWithCategory:self.currentLeaderBoard];
GCscore.value = [[NSUserDefaults standardUserDefaults] integerForKey:@"NEWSCORE"];
[GCscore reportScoreWithCompletionHandler:^(NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^(void) {
if (error == NULL) {
NSLog(@"Score Sent");
} else {
NSLog(@"Score Failed, %@",[error localizedDescription]);
}
});
}];
}
并且有效