Ich mache ein paar Experimente, um etwas über GameKit zu lernen und ich habe ein einfaches Spiel und ein Interface erstellt, das die Matches meines Spielers auflistet. Ich versuche, die Möglichkeit hinzuzufügen, Spiele mit der Methode removeWithCompletionHandler:
auf dem Spiel zu entfernen, aber ich habe Probleme beim Entfernen eines GKTurnBasedMatch
, der in einen ungültigen Zustand eingetreten zu sein scheint.Entfernen eines GKTurnBasedMatch, das sich in einem ungültigen Zustand befindet
A po des Spiels in Frage druckt:
$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)>
>
Welche, dass das Spiel beendet ist, um anzuzeigen, scheint worden. Einer der Teilnehmer hat jedoch das Ergebnis: Keiner, von dem ich von der Dokumentation überzeugt bin, ist für ein beendetes Spiel ungültig. Der Versuch, das Spiel einfach zu entfernen gibt:
The requested operations could not be completed because one or more parameters are invalid.
Bei dem Versuch, die Ergebnisse zu setzen und das Spiel zu beenden gibt:
The requested operation could not be completed because the session is in an invalid state.
Ich dachte, vielleicht könnte ich das Spiel nicht entfernen, da der lokale Spieler die aktiv ist Teilnehmer, aber beide participantQuitInTurnWithOutcome:...
und endTurnWithNextParticipants:...
beide geben den Fehler:
The requested operation could not be completed because the session is in an invalid state.
auch. Mache ich etwas falsch oder habe ich irgendwie ein nicht entfernbares Spiel geschaffen?
P.S. Ich bin auch nicht in der Lage, die Spiele über die Game Center-Schnittstelle zu entfernen, wo sie im Abschnitt "Game Over" aufgelistet sind.
Die Antwort von Henrik sollte Ihr Problem lösen. Sie müssen den Aufruf von declineInviteWithCompletionHandler aufrufen: –