正确结束GKTurnBasedMatch的方法

时间:2012-12-11 01:40:46

标签: objective-c ios xcode game-center

假设有一个GKTurnBasedMatch,只剩下2个参与者尚未退出。

如果当前参与者想要退出,而不是呼叫,participantQuitInTurnWithOutcome:...呼叫是否正确endMatchInTurnWithMatchData:...,因为匹配不能只与一个参与者一起继续?

但是如果其他参与者想要退出,则无法拨打endMatchInTurnWithMatchData:...,因为轮到你了,所以你必须拨打participantQuitOutOfTurnWithOutcome:...但是你只剩下一个参与者了比赛。

处理这些情况的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以致电–participantQuitOutOfTurnWithOutcome:withCompletionHandler:,然后-(void)handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive GKTurnBasedEventHandlerDelegate将会呼叫所有其他参与者。

在那里,您可以为现在轮到的玩家拨打-(void)endMatchInTurnWithMatchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler

要确定谁离开了你的比赛,请检查GKTurnBasedParticipant的属性matchOutcome - 它将是GKTurnBasedMatchOutcomeQuit。