objective-c - 不按顺序结束 GKTurnBasedMatch 的正确方法

标签 objective-c ios xcode game-center

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

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

但是如果其他参与者想退出,你不能调用 endMatchInTurnWithMatchData:... 因为还没有轮到你,所以你必须调用 participantQuitOutOfTurnWithOutcome:... 但是你只剩下一个参与者参加比赛。

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

最佳答案

您可以调用 –participantQuitOutOfTurnWithOutcome:withCompletionHandler: 然后 -(void)handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActiveGKTurnBasedEventHandlerDelegate 将为所有其他参与者调用。

在那里你可以为现在轮到的玩家调用 -(void)endMatchInTurnWithMatchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler

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

关于objective-c - 不按顺序结束 GKTurnBasedMatch 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13812322/

相关文章:

xcode - 在 Xcode 中检查连接速度(带宽)

ios - 如何将相同的层对象添加到任何 'UITextField'

ios - 如何在 Swift 项目中使用 Objective-C 桥接 header

ios - 我可以使用 Ubuntu 创建 Apple iPod/iPhone/iPad 应用程序吗?

c++ - Xcode - 编译 .tcc 文件

xcode - Git diff 存在于 Windows 上的符号链接(symbolic link)上,但不存在于 FAT 文件系统上的 Mac 上

ios - replaceObjectAtIndex objectforKey 崩溃

iphone - NSDate 内存泄漏问题

ios - NavigationController 中的 View 之间的序列无法正常工作

ios - 点击 UITextField 后跟 UIDatePicker 时,UITableView 向上滚动两次