Игровой центр localPlayer всегда аутентифицирован - PullRequest
1 голос
/ 13 декабря 2010

Я пытаюсь определить, работает ли аутентификация локального проигрывателя или нет, и кажется, что я всегда получаю положительный результат.

Вот код, который я использую:

//--------------------------------------------------------------
- (void)authenticateLocalPlayer 
{
    NSLog(@"Authenticating local player %@ (%d)", ([GKLocalPlayer localPlayer].authenticated? @"YES":@"NO"), [GKLocalPlayer localPlayer].authenticated);
    if ([GKLocalPlayer localPlayer].authenticated == NO) {
        [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) {
            [self callDelegateOnMainThread:@selector(authenticationChanged:) 
                                   withArg:nil 
                                     error:error];
        }];
    }
}

//--------------------------------------------------------------
- (void)authenticationChanged:(NSError *)error {
    if (error != nil) {
        NSLog(@"Error authenticating local player: %@", [error localizedDescription]);
    }
    NSLog(@"Authentication changed %@ (%d)", ([GKLocalPlayer localPlayer].authenticated? @"YES":@"NO"), [GKLocalPlayer localPlayer].authenticated);
}

Я тестировал этот код, когда он отключен от сети, и вот вывод трассировки:

2010-12-13 13:20:59.799 LittleScreams[954:307] Authenticating local player NO (0)
2010-12-13 13:21:01.616 LittleScreams[954:307] Error authenticating local player: The Internet connection appears to be offline.
2010-12-13 13:21:01.621 LittleScreams[954:307] Authentication changed YES (1)

Он четко видит, что соединение отключено, но все еще аутентифицирует игрока!Есть идеи, что происходит?Я получаю одинаковый результат на устройстве и в симуляторе.

TIA

1 Ответ

0 голосов
/ 19 декабря 2010

Я думаю, вы не должны вызывать аутентификациюChanged вручную, посмотрите Руководство по программированию Game Kit и следуйте инструкциям, которые работали для меня.

...