J'essaie de détecter si l'authentification du lecteur local fonctionne ou non et il semble que je reçois toujours un résultat positif.Game Center localPlayer toujours authentifié
Voici le code que je utilise:
//--------------------------------------------------------------
- (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);
}
Je l'ai testé ce code tout en étant déconnecté du réseau et est ici la sortie de trace:
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)
Il voit clairement que la connexion est déconnecté mais authentifie toujours le joueur! Avez-vous une idée de ce qui passe? Je reçois le même résultat sur l'appareil et dans le simulateur.
TIA
J'ai un problème similaire. Je teste la fonctionnalité de mon Game Center et je voulais voir ce qui se passe en mode avion. Si j'étais connecté au Game Center avant d'entrer dans le mode avion, l'application n'autorisera pas un joueur (bien sûr), mais si je fais un [localPlayer isAuthenticated], j'obtiens un OUI avec l'ID du joueur connecté à Game Center. Avez-vous trouvé une solution à votre problème? – Structurer