2012-12-11 37 views
1

假设有一个GKTurnBasedMatch,剩下两个参与者尚未退出。正确结束GKTurnBasedMatch的方法

如果当前参与者想要退出而不是打电话,participantQuitInTurnWithOutcome:...是否正确致电endMatchInTurnWithMatchData:...,因为比赛不能只继续一个参与者?

但是,如果其他参与者想要退出,您不能拨打endMatchInTurnWithMatchData:...,因为它不是轮到你,所以你必须拨打participantQuitOutOfTurnWithOutcome:...,但你只剩下一个参与者在比赛中。

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

回答

1

您可以拨打–participantQuitOutOfTurnWithOutcome:withCompletionHandler:然后-(void)handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive将由GKTurnBasedEventHandlerDelegate将被呼叫所有其他参与者。

在那里你可以给现在轮到的玩家打电话-(void)endMatchInTurnWithMatchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler

要确定谁离开了您的比赛,请查看GKTurnBasedParticipant的属性matchOutcome - 它将成为GKTurnBasedMatchOutcomeQuit。