いくつかの同様のスレッドで回答を探していましたが、私の問題に適切な回答が見つかりませんでした.
私はこれをviewDidLoadに持っています
self.currentLeaderBoard = [leaderboards objectForKey:[defaults objectForKey:@"Level"]];
if ([GameCenterManager isGameCenterAvailable]) {
self.gameCenterManager= [[GameCenterManager alloc] init];
[self.gameCenterManager setDelegate: self];
[self.gameCenterManager authenticateLocalUser];
} else {
NSLog(@"Current device doesn't support GameCenter");
}
私はこの方法でスコアを送信しようとします:
NSLog(@"Category %@", self.currentLeaderBoard);
[self.gameCenterManager reportScore: 20 forCategory: self.currentLeaderBoard];
[self.gameCenterManager reloadHighScoresForCategory: self.currentLeaderBoard];
これも修正のために追加しましたが、役に立ちませんでした:
- (void) processGameCenterAuth: (NSError*) error
{
if(error == NULL)
{
[self.gameCenterManager reloadHighScoresForCategory: self.currentLeaderBoard];
NSLog(@"GAMECENTER OK");
}
else
{
UIAlertView* alert= [[UIAlertView alloc] initWithTitle: @"Game Center Account Required"
message: [NSString stringWithFormat: @"Reason: %@", [error localizedDescription]]
delegate: self cancelButtonTitle: @"Try Again..." otherButtonTitles: NULL];
[alert show];
}
}
ただし、効果は常に同じです。
2012-04-15 11:34:31.987 Colors[40146:1bb03] authenticateWithCompletionHandler: enter
2012-04-15 11:34:32.009 Colors[40146:1bb03] authenticateWithCompletionHandler: exit
2012-04-15 11:34:32.010 Colors[40146:1bb03] NORMAL MODE
2012-04-15 11:34:33.163 Colors[40146:1bb03] GAMECENTER OK
2012-04-15 11:34:33.368 Colors[40146:1bb03] Missed Method
2012-04-15 11:34:33.773 Colors[40146:1bb03] Category 2
2012-04-15 11:34:33.851 Colors[40146:1bb03] Missed Method
2012-04-15 11:34:33.989 Colors[40146:1bb03] Missed Method
ご覧のとおり、アプリの動作開始時と、スコアを報告しようとすると、「Missed Method」と表示されます。スコアはまったく報告されません (シミュレーターで 2 つの異なるアカウントで試しました) - GC には何も表示されません。確かに、カテゴリが iTunes Connect で適切に設定されているかどうかを確認しましたが、そうであるようです。 http://cl.ly/183a2A2p1M0A2k2c3U2B
私が間違っていたことと、それを修正する方法を教えてください...ありがとう!