Come indicato dalle linee guida della mela; Ho implementato il protocollo GKLocalPlayerListener
nel mio gioco di classe centro e aggiungi il giocatore locale come ascoltatore, non appena ha autenticato: implementazioneIl protocollo GKLocalPlayerListener non viene chiamato
func authenticationChanged() {
if (GKLocalPlayer.localPlayer().authenticated && !self.userAutenticated) {
println("Authentication changed: player authenticated.")
userAutenticated = true
GKLocalPlayer.localPlayer().unregisterAllListeners()
GKLocalPlayer.localPlayer().registerListener(self)
} else if (GKLocalPlayer.localPlayer().authenticated && self.userAutenticated) {
println("Authentication changed: player not authenticated.")
userAutenticated = false
}
}
Protocollo:
// MARK: - GKLocalPlayerListener
func player(player: GKPlayer!, didAcceptInvite invite: GKInvite!) {
println("Did accept invite")
}
func player(player: GKPlayer!, didRequestMatchWithRecipients recipientPlayers: [AnyObject]!) {
println("Did request matchmaking")
}
Nessuno di questo 2 metodi si chiama quando Cerco di invitare un amico e anche io non ho ricevuto alcun tipo di notifica. Ho provato a testare il gioco in modalità di rilascio ma ho ottenuto lo stesso risultato. Devo dire che il normale matchmaking funziona correttamente, sono in grado di trovare il giocatore con cui giocare senza problemi.
EDIT:
Se i test test da 2 dispositivi, la notifica sarà ricevuto, ma se mi tocca sulla notifica, l'applicazione sarà aperto e nessun delegato sarà chiamato. Se chiudo l'app e la riavvio, viene chiamato lo GKLocalPlayerListener
.
Cosa c'è che non va ??
Probabilmente solo bisogno di chiamare 'unregisterAllListeners' se l'autenticazione viene modificata su false. –
No, non ha risolto il problema. L'utente è autenticato correttamente e il delegato non funziona –