2

GameKit でローカル ユーザーを認証する次のコードがあります。診断もクラッシュもありませんが、ハンドラーは使用されず、ローカル ユーザーは認証されません。誰かが理由を言うことができますか?この認証方法は、Cocos2d の Wenderlich ブログに従っています。ANNOUNCE と CCLOG の行はデバッグ用に作成したもので、メソッドが呼び出されたがハンドラーが呼び出されていないことを示しています。冗長に見える BOOL もデバッグによるものです。iOS6 iPhoneでテストしています。このコードは AppDelegate にあります。

-(void) authenticateLocalPlayer {
    ANNOUNCE
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
    localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error) {
        [self setLastError:error];
        if ( [CCDirector sharedDirector].isPaused ) [[CCDirector sharedDirector] resume];
        CCLOG(@"inside authenticateHandler");
        if (localPlayer.authenticated) {
            _gameCenterFeaturesEnabled = YES;
            X.localPlayerAuthenticated = YES;
        } else if (viewController) {
            [[CCDirector sharedDirector] pause];
            [self presentViewController:viewController];
        } else {
            _gameCenterFeaturesEnabled = NO;
            X.localPlayerAuthenticated = NO;
        }
    };
    CCLOG(@"lastError: %@", self.lastError);
    CCLOG(@"localPlayer.authenticated: %d", localPlayer.authenticated);
}    
4

0 に答える 0