我正在开发一款基于回合制的 Game Kit 游戏。我正在为玩家参与的比赛制作自定义 UI。我使用
loadMatchesWithCompletionHandler:
有一个用例,用户正在比赛中,轮不到他们,他们想退出并且不再在游戏列表中看到该比赛。我的代码调用
participantQuitOutOfTurnWithOutcome:withCompletionHandler:
并从表视图中删除该行。
在这一点上,其他玩家获得了转牌并看到他们的对手已经退出
match.remoteParticipant.matchOutcome == GKTurnBasedMatchOutcomeQuit
所以他们在游戏结束时打电话给
endMatchInTurnWithMatchData:completionHandler:
问题是游戏仍然存在于游戏中心。所以打电话
loadMatchesWithCompletionHandler:
在第一个玩家的应用程序上会将其拉回并显示在游戏表中。
我能想到的唯一解决方案是从表中保存匹配的匹配 ID 和黑名单。似乎有点笨拙。
似乎没有用于此的 API。即退出并删除匹配我的匹配列表。有没有更好的方法来仅使用 Game Center API 来处理这种情况?