Sto facendo qualche esperimento per cercare di conoscere GameKit e ho creato un gioco semplice e un'interfaccia che elenca le partite del mio giocatore. Sto cercando di aggiungere la possibilità di rimuovere i giochi utilizzando il metodo removeWithCompletionHandler:
sulla partita, ma ho difficoltà a rimuovere uno GKTurnBasedMatch
che sembra aver inserito uno stato non valido.Rimozione di un GKTurnBasedMatch che si trova in uno stato non valido
un pò di partita in questione stampe:
$0 = 0x1d590d20 <GKTurnBasedMatch 0x1d590d20 id:858d8257-cc49-4060-b1d8-38c09a929e3c status:Ended message: taken:2013-03-08 18:08:47 +0000 created:2013-03-08 03:24:14 +0000
current:<GKTurnBasedParticipant 0x1d58c020 - id:G:1717956303 (local player) status:Invited outcome:None lastTurn:(null)>
participants:
<GKTurnBasedParticipant 0x1d58bc90 - id:G:1717239488 status:Done outcome:Quit lastTurn:2013-03-08 18:08:47 +0000>
<GKTurnBasedParticipant 0x1d58c020 - id:G:1717956303 (local player) status:Invited outcome:None lastTurn:(null)>
>
che sembra indicare che la partita è stata terminata. Tuttavia, uno dei partecipanti ha il risultato: Nessuno, che sono guidato dai documenti a credere non valido per un gioco finito. Cercando di rimuovere semplicemente il gioco dà:
The requested operations could not be completed because one or more parameters are invalid.
Durante il tentativo di impostare i risultati e terminare il gioco dà:
The requested operation could not be completed because the session is in an invalid state.
ho pensato che forse non ho potuto rimuovere il gioco perché il giocatore locale è il principio attivo partecipante, ma entrambi participantQuitInTurnWithOutcome:...
e endTurnWithNextParticipants:...
entrambi danno l'errore:
The requested operation could not be completed because the session is in an invalid state.
pure. Sto facendo qualcosa di sbagliato o ho in qualche modo creato un gioco inamovibile?
P.S. Non riesco nemmeno a rimuovere i giochi tramite l'interfaccia fornita dal Game Center, dove sono elencati nella sezione "Game Over".
La risposta di Henrik dovrebbe risolvere il tuo problema. Devi chiamare declineInviteWithCompletionHandler: –