iOS 6基于回合制匹配的新API - 接受和拒绝

Jay*_*ase 7 game-center ios6

iOS 6.0在GKTurnBasedMatch类中添加了几个新的实例方法.我不知道如何使用它们:

acceptInviteWithCompletionHandler
declineInviteWithCompletionHandler
Run Code Online (Sandbox Code Playgroud)

它们是否应该用于响应收到回合制的比赛邀请?通过GKTurnBasedEventHandlerDelegate协议方法接收基于回合的匹配邀请:handleInviteFromGameCenter.

- (void) handleInviteFromGameCenter:(NSArray *)playersToInvite
Run Code Online (Sandbox Code Playgroud)

handleInviteFromGameCenter不提供用于接受或拒绝的GKTurnBasedMatch实例.因此,我不知道如何使用它们来响应邀请.

提供GKTurnBasedMatch实例的唯一方法是:

+ loadMatchesWithCompletionHandler
+ findMatchForRequest:withCompletionHandler
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我会对loadMatchesWithCompletionHandler的结果使用acceptInviteWithCompletionHandler,因为它们是我已经参与的匹配项.

我不确定为什么我会使用findMatchForRequest:withCompletionHandler,因为这是为了找到匹配.找到后我应该接受比赛吗?

< - 更新 - >

我找到了一个用于declineInviteWithCompletionHandler的用法.如果用户请求删除匹配,他们没有进入,我调用declineInviteWithCompletionHandler.这样他们就不会被记录为退出比赛.

当玩家尚未转弯时,他们的GKTurnBasedParticipant.lastTurnDate为空

如果用户请求播放匹配(我使用loadMatchesWithCompletionHandler在列表中显示)并且本地玩家没有在匹配中转弯,我在调用acceptInviteWithCompletionHandler之前,我将匹配显示给玩家.我不确定这是否必要,这似乎是正确的做法.