我正在进行一些实验,试图学习GameKit,并制作了一个简单的游戏和一个列出我的玩家比赛的界面。我正在尝试使用match上的removeWithCompletionHandler:
方法来添加删除游戏的功能,但我无法删除似乎已进入无效状态的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)>
>
似乎表明比赛已经结束了,但其中一个参与者的结果是"None",根据文档,我认为这对于已结束的游戏无效。尝试简单删除游戏会显示:
在尝试设置结果并结束游戏时会显示:由于一个或多个参数无效,因此无法完成所请求的操作。
我以为可能不能删除游戏,因为本地玩家是活动参与者,但是由于会话处于无效状态,因此无法完成所请求的操作。
participantQuitInTurnWithOutcome:...
和endTurnWithNextParticipants:...
都会显示错误:
我做错了什么还是我创建了一个无法删除的游戏?由于会话处于无效状态,因此无法完成所请求的操作。
P.S. 我也无法通过提供的界面从Game Center中删除游戏,在"Game Over"部分列出。
participant.matchOutcome
设置为GKTurnBasedMatchOutcomeTied
,然后调用[matchremoveWithCompletionHandler...]
成功清除了这些错误匹配。虽然我不会在我的代码中保留它,但它有效地解决了无效游戏的问题。 - Jon