iphone - 如何从Game Center获取本地玩家分数

标签 iphone objective-c ios7 game-center gamekit

如何从Leaderboard Game Center获取本地玩家的分数?我试过这段代码,但它什么也没返回。任何人都知道如何解决它,或者有更好的方法如何获得分数?

- (NSString*) getScore: (NSString*) leaderboardID
{
    __block NSString *score;
    GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
    if (leaderboardRequest != nil)
    {
        leaderboardRequest.identifier = leaderboardID;

        [leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
            if (error != nil)
            {
                NSLog(@"%@", [error localizedDescription]);
            }
            if (scores != nil)
            {
                int64_t scoreInt = leaderboardRequest.localPlayerScore.value;
                score = [NSString stringWithFormat:@"%lld", scoreInt];
            }
        }];
    }
    return score;
}

我认为,该方法必须等待完成 [leaderboardRequest loadScoresWithCompletionHandler: ...

这可能吗?

最佳答案

您的代码似乎没有任何我能看到的错误。我建议显示标准排行榜界面,以查看报告分数的代码是否真正正常工作。如果是这样,您应该会在排行榜中看到分数。下面的代码在我的游戏中有效,我知道分数报告工作正常,因为它显示在默认游戏中心 UI 中。

GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
leaderboardRequest.identifier = kLeaderboardCoinsEarnedID;
[leaderboardRequest loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
    if (error) {
        NSLog(@"%@", error);
    } else if (scores) {
    GKScore *localPlayerScore = leaderboardRequest.localPlayerScore;
    CCLOG(@"Local player's score: %lld", localPlayerScore.value);
    }
}];

如果您不确定如何操作,下面的代码应该可以显示默认排行榜 (iOS7):

 GKGameCenterViewController *gameCenterVC = [[GKGameCenterViewController alloc] init];
 gameCenterVC.viewState = GKGameCenterViewControllerStateLeaderboards;
 gameCenterVC.gameCenterDelegate = self;
 [self presentViewController:gameCenterVC animated:YES completion:^{
      // Code
 }];

关于iphone - 如何从Game Center获取本地玩家分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591123/

相关文章:

ios - 加载第一个 View Controller 时收到通知

ios7 - iOS中带有自动布局的垂直UISlider

ios - 使用参数创建自定义 UIView init 方法

ios - 无法设置 self.navigationItem.backBarButtonItem

iphone - 使用 'presentModalViewController'加载 View

objective-c - 从可变数组填充 NSTableview

ios - 可以填充选择器 View 但不能从中获取数据

ios - 如何在 iOS 中禁用导航栏

ios - 无法在某些应用程序中选择日文键盘

iphone - 在 xcode 中通过 json 使用 Odata 从 Web 服务器获取数据的代码