2013-04-20 4 views
2

Я создаю игру в Game Center в iOS6 и постоянно сталкиваюсь с проблемами. Нынешний один из меня сбивает меня с толку. Каждый раз, когда моя игра пытается аутентифицировать локального игрока, он терпит неудачу. Каждый раз, когда он запускает мою функцию «отключить игровой центр», и это сводит меня с ума.Не удалось аутентифицировать локальный плеер iOS6

- (void) disableGameCenter 
{ 
    // Write something to disable gamecenter. 
    // gameCenterAvailable = FALSE; 
} 

-(void)showAuthenticationDialogWhenReasonable:(UIViewController *)viewController 
{ 
    // Pause Tasks Here 
// [[[(AppDelegate *)[[UIApplication sharedApplication] delegate] window] rootViewController] presentViewController:viewController animated:YES completion:nil]; 
} 

- (void) authenticateLocalPlayer 
{ 
    localPlayer = [GKLocalPlayer localPlayer]; 
    __weak GKLocalPlayer* weakLocalPlayer = localPlayer; 

    weakLocalPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error) 
    { 
     if (viewController != nil) 
     { 
      [self showAuthenticationDialogWhenReasonable: viewController]; 
     } 
     else if (weakLocalPlayer.isAuthenticated) 
     { 
      self.localPlayer = weakLocalPlayer; 
     } 
     else 
     { 
      [self disableGameCenter]; 
     } 
    }; 
} 
+0

Может быть ViewController равна нулю – jcesarmobile

+0

Но это, кажется, имеет место, и я понятия не имею, почему. Есть идеи? –

+0

Кажется, что если аутентификация завершилась неудачей, что-то должно быть установлено с ошибкой. Если вы установили точку останова на «disableGameCenter», что в ней «ошибка» при ее распечатке? –

ответ

0

Простите меня, если я ошибаюсь, но я не думаю, что вы используете метод аутентификации.

Попробуйте этот метод вместо:

- (void) authenticateLocalPlayer 
{ 
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; 
    [localPlayer authenticateWithCompletionHandler:^(NSError *error) { 
     if (localPlayer.isAuthenticated) 
     { 
      NSLog(@"Authenticated"); 
     } 
     else 
     { 
      NSLog(@"Not Authenticated"); 
     } 
    }]; 
} 
+0

Это то, что я имел обыкновение иметь, но они устарели аутентификациейWithCompletionHandler в iOS6, и с тех пор я изо всех сил пытался найти обходное решение. –

+0

Я все еще использую этот метод на iOS 6 – jcesarmobile

+0

Я только что представил приложение с этим точным кодом, и у меня не было проблем. – David

Смежные вопросы