我正在做一些试验以尝试了解GameKit,并且我制作了一个简单的游戏和一个列出我的玩家匹配的界面。我试图添加在比赛中使用removeWithCompletionHandler:
方法删除游戏的功能,但我无法删除似乎已进入无效状态的GKTurnBasedMatch
。删除处于无效状态的GKTurnBasedMatch
匹配的问题打印一个PO:
$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)>
>
这似乎表明,比赛已经结束。然而,其中一位参与者的结果是:无,我认为文档认为这对于已结束的游戏无效。试图简单地删除游戏带给:
The requested operations could not be completed because one or more parameters are invalid.
试图设置的结果和结束比赛,得到:
The requested operation could not be completed because the session is in an invalid state.
我想也许是因为本土球员是主动我不能删除游戏参加者,但两者participantQuitInTurnWithOutcome:...
和endTurnWithNextParticipants:...
都给出错误:
The requested operation could not be completed because the session is in an invalid state.
为好。我做错了什么,或者我是否创造了一个无法移动的游戏?
P.S.我也无法通过Game Center提供的界面删除游戏,它们在“游戏结束”部分列出。
Henrik的答案应该可以解决您的问题。您需要调用declineInviteWithCompletionHandler: – 2013-04-22 20:08:22