iOS 6.0 为 GKTurnBasedMatch 类添加了几个新的实例方法。我不确定如何使用它们:
acceptInviteWithCompletionHandler
declineInviteWithCompletionHandler
是否应该在收到回合制比赛邀请时使用它们?回合制比赛邀请通过 GKTurnBasedEventHandlerDelegate 协议方法:handleInviteFromGameCenter 接收。
- (void) handleInviteFromGameCenter:(NSArray *)playersToInvite
handleInviteFromGameCenter 不提供用于接受或拒绝的 GKTurnBasedMatch 实例。因此,我不知道如何使用它们来响应邀请。
提供 GKTurnBasedMatch 实例的唯一方法是:
+ loadMatchesWithCompletionHandler
+ findMatchForRequest:withCompletionHandler
我不确定为什么要对 loadMatchesWithCompletionHandler 的结果使用 acceptInviteWithCompletionHandler,因为它们是我已经参与的比赛。
我不确定为什么我会将它们中的任何一个与 findMatchForRequest:withCompletionHandler 一起使用,因为它被调用来查找匹配项。找到匹配后我应该接受吗?
<- 更新->
我发现了一种用于拒绝邀请与完成处理程序的用途。如果用户请求删除他们没有参加的比赛,我会调用 dedeclineInviteWithCompletionHandler。这样他们就不会被记录为退出比赛。
当玩家尚未转弯时,他们的 GKTurnBasedParticipant.lastTurnDate 为空
如果用户请求进行比赛(我已使用 loadMatchesWithCompletionHandler 在列表中显示)并且本地玩家没有在比赛中轮到,我在向玩家显示比赛之前调用acceptInviteWithCompletionHandler。我不确定这是否有必要,这似乎是正确的做法。