私のゲームは、iOS5 で 1 年間完全に正常に動作しています。iOS6 で動作するようにアップデートした後、Game Center でスコアを送信しようとするとクラッシュするようになりました。reportScoreWithCompletionHandler
コードの行でクラッシュします
- (void)sendScore:(GKScore *)score {
[score reportScoreWithCompletionHandler:^(NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^(void)
{
if (error == NULL) {
NSLog(@"Successfully sent score!");
[scoresToReport removeObject:score];
} else {
NSLog(@"Score failed to send... will try again later. Reason: %@", error.localizedDescription);
}
});
}];
}
ここで何が間違っていますか?
アップデート
少し調べてみると、問題がある可能性もあるようauthenticateWithCompletionHandler
です...そのための私のコードは以下のとおりです..これが原因である場合、どうすれば動作するように更新できますか?
- (void)authenticateLocalUser {
if (!gameCenterAvailable) return;
NSLog(@"Authenticating local user...");
if ([GKLocalPlayer localPlayer].authenticated == NO) {
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:nil];
} else {
NSLog(@"Already authenticated!");
}
}