Pracuję nad grą, która używa Game Center i otrzymuję kolejne ostrzeżenie;authenticateWithCompletionHandler: jest nieaktualny: najpierw przestarzały w iOS 6.0
... 'authenticateWithCompletionHandler:' jest przestarzałe: najpierw przestarzałe w iOS 6.0
Ok, szukałem i okazało się, że jest nowy kod uwierzytelnienia użytkownika lokalnego więc wymieniłem
stary kod :
- (void)authenticateLocalUser {
if (!gameCenterAvailable) return;
NSLog(@"Authenticating local user...");
if ([GKLocalPlayer localPlayer].authenticated == NO) {
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:nil];
} else {
NSLog(@"Already authenticated!");
}
}
z nowym:
- (void)authenticateLocalUser {
if (!gameCenterAvailable) return;
NSLog(@"Authenticating local user...");
if ([GKLocalPlayer localPlayer].authenticated == NO) {
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
[localPlayer setAuthenticateHandler:(^(UIViewController* viewcontroller, NSError *error) {
//[localPlayer authenticateWithCompletionHandler:^(NSError *error) { OLD CODE!
if(localPlayer.isAuthenticated) {
//do some stuff
}else {
// not logged in
}
})];
} else {
NSLog(@"Already authenticated!");
}
}
i wszystko jest ok, oprócz jednej rzeczy. Jeśli użytkownik nie jest zalogowany, nie ma formularza logowania do Game Center. Ze starym kodem wyświetla się formularz logowania do Game Center, jeśli użytkownik nie jest zalogowany.
Czy jest jakiś dodatkowy kod, który muszę włożyć lub coś jeszcze?
Dodatkowe info: - tryb krajobrazu - target Wdrożenie: 6,0
otrzymuję ten błąd: Ostrzeżenie: próba przedstawienia
CroiOS
Dodatkowe informacje: - tryb krajobrazowy - miejsce docelowe wdrożenia: 6.0 – CroiOS
gdzie jest wywoływany kod uwierzytelniający? –