【问题标题】:sandbox leaderboard empty沙盒排行榜为空
【发布时间】:2011-09-17 14:01:31
【问题描述】:

我正在尝试为我的应用制作 Game Center 排行榜。我一直在遵循 Apple 的步骤并遵循 GKTapper 的示例代码,但我无法在 Game Center 中显示任何分数。我已经在 iTunes Connect 中设置了排行榜。这是报告分数的代码:

- (void) reportScore: (int64_t) score forCategory: (NSString *) category {
    GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:category] autorelease];
    scoreReporter.value = score;

    [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
        if (error != nil)
        {
            UIAlertView* alert= [[[UIAlertView alloc] initWithTitle: @"Score Report Failed!" message: [NSString stringWithFormat: @"Reason: %@", [error localizedDescription]] delegate: self cancelButtonTitle: @"Try Again..." otherButtonTitles: NULL] autorelease];
            [alert show];
        }
    }];
}

代码似乎运行良好。永远不会显示警报。但是,当我进入游戏中心时,排行榜是空白的。我正在运行 Xcode 4.2 和 iOS 5。有什么想法吗?

【问题讨论】:

    标签: iphone center sandbox leaderboard


    【解决方案1】:

    所说的都是真的:

    • 您需要一个 int_64t 分数;
    • 您需要在 iTunesConnect 上设置所有内容;
    • 您需要使用沙盒帐户。

    我刚刚发现,iTunesConnect 中没有 Category 之类的东西。另一方面,您应该使用排行榜类别来初始化您的 GKScore。

    根据我在论坛上看到的情况,大约 2/3 的人做对了。

    在 iTunesConnect 中,当您配置排行榜时,您设置:

    • 它的参考(我一直认为是类别);
    • 它的 ID(原来是实际的类别)。

    我试图使用参考而不是 ID 来发布分数。

    两件事:

    • 首先,我的程序没有错误(这在某种程度上是可以接受的);
    • 其次,一旦我做对了,我注意到,虽然许多人声称相反,但不需要多个沙盒帐户来显示分数。

    【讨论】:

      【解决方案2】:

      在初始化为我修复它之后再次显式设置类别。

      Scoreobject.category = category
      

      为了显示正确的排行榜,我还在那里设置了类别。

      leaderboardobject.category = @"mycategory";
      

      【讨论】:

        【解决方案3】:

        必须有两个经过验证的 GameCenter 用户向排行榜报告分数,然后才能在排行榜中显示任何分数。

        如果您的沙盒中只有一个用户,请创建另一个用户并报告分数。

        如果仍然无法正常工作,请确保您验证了两个用户的电子邮件地址。

        【讨论】:

          【解决方案4】:

          1) 请检查您的类别拼写是否正确。令人惊讶的是,即使我的类别拼写错误,我也没有收到错误消息。更正错字为我解决了这个问题。

          2) 请在呈现 GKLleaderboardViewController 之前检查您是否设置了正确的排行榜?正确设置如下:

          GKLeaderboardViewController *leaderboardViewController = [[[GKLeaderboardViewController alloc] init] autorelease];
          leaderboardViewController.category = @"yourcategoryname";
          [youviewcontroller presentModalViewController:leaderboardViewController animated: YES];
          

          【讨论】:

            【解决方案5】:

            reportScoreWithCompletionHandler 的文档说:

            “在报告任务完成之前,您的应用程序应保持对分数对象的强引用。”

            您正在自动发布。由于任务稍后会完成,所以该对象可能在操作执行之前就被删除了。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-12-01
              • 2014-04-02
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多