假设有一个GKTurnBasedMatch,只剩下2个参与者尚未退出。
如果当前参与者想要退出,而不是呼叫,participantQuitInTurnWithOutcome:...
呼叫是否正确endMatchInTurnWithMatchData:...
,因为匹配不能只与一个参与者一起继续?
但是如果其他参与者想要退出,则无法拨打endMatchInTurnWithMatchData:...
,因为轮到你了,所以你必须拨打participantQuitOutOfTurnWithOutcome:...
但是你只剩下一个参与者了比赛。
处理这些情况的正确方法是什么?
答案 0 :(得分:1)
您可以致电–participantQuitOutOfTurnWithOutcome:withCompletionHandler:
,然后-(void)handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive
GKTurnBasedEventHandlerDelegate
将会呼叫所有其他参与者。
在那里,您可以为现在轮到的玩家拨打-(void)endMatchInTurnWithMatchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler
。
要确定谁离开了你的比赛,请检查GKTurnBasedParticipant的属性matchOutcome - 它将是GKTurnBasedMatchOutcomeQuit。