2011-06-17 8 views
7

私は自分のアプリのGame Centerリーダーボードを作ろうとしています。私はAppleからの手順に従い、GKTapperのサンプルコードに従ってきましたが、Game Centerに表示するスコアは得られません。私はiTunes Connectでリーダーボードをセットアップしました。スコアを報告するコードは次のとおりです。sandbox leaderboard empty

- (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]; 
     } 
    }]; 
} 

コードが正常に動作しているようです。アラートは表示されません。しかし、Game Centerに入ると、リーダーボードは空白になります。私はXcode 4.2とiOS 5を実行しています。

答えて

-1

reportScoreWithCompletionHandlerのドキュメントは言う:

「レポーティングタスクが完了するまで、あなたのアプリケーションは、スコアオブジェクトへの強い参照を保持すべきです。」

あなたは自動リリースしています。タスクは後で完了するため、操作が実行される前にオブジェクトが削除されている可能性があります。

2

カテゴリを明示的に設定すると、initがそれを修正した後で再び明示的に設定されます。

Scoreobject.category = category 

また、適切なリーダーボードを表示するために、そこにもカテゴリを設定しました。

leaderboardobject.category = @"mycategory"; 
0

1)カテゴリを正しく綴っているかどうかを確認してください。意外にも、カテゴリのスペルミスがあってもエラーは出ませんでした。タイプミスを修正することで、私の問題が解決しました。

2)GKLeaderboardViewControllerを表示する前に、適切なリーダーボードを設定しているかどうかを確認してください。

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

2人の確認されたGameCenterユーザーは、スコアボードをリーダーボードに表示する前に、リーダーボードにスコアを表示する必要があります。

サンドボックスに1人のユーザーしかいない場合は、別のユーザーを作成してスコアを報告してください。

まだ動作しない場合は、両方のユーザーのメールアドレスを確認してください。言われていますどのような

3

は完全に真である:

  • あなたはint_64tスコアを必要とします。
  • あなたはすべてのものをiTunesConnectで設定する必要があります。
  • サンドボックスアカウントを使用する必要があります。

私が今見出したのは、カテゴリとしてiTunesConnectにそのようなものはないということです。一方、リーダーボードカテゴリを使用してGKScoreを初期化する必要があります。

私はフォーラムで見たことから、約2/3の人が正しいと感じています。iTunesConnectで

あなたがリーダーボードを設定するとき、あなたは設定します(私の長い思考がカテゴリだった)

  • その参照を。
  • そのID(実際のカテゴリとなります)。

IDの代わりに参照を使用してスコアを投稿しようとしていました。

2つのこと:

  • 最初、私は(何らかの方法で、許容可能である、)プログラムからエラーがなかったです。
  • 2回目、一度正しくなったら、多くの人が反対を主張しているのに対し、スコアを表示するには複数のサンドボックスアカウントを用意する必要はありません。