GKTurnBasedMatch 检测邀请

GKTurnBasedMatch detect invitation

我有一个视图,其中列出了本地玩家(已注册为听众)的所有可用匹配项。我遇到的问题是我希望我的列表在玩家收到新比赛邀请时更新。

我尝试实施:

func player(_ player: GKPlayer, didAccept invite: GKInvite) {

}

func player(_ player: GKPlayer, didRequestMatchWithOtherPlayers playersToInvite: [GKPlayer]) {

}

但是这些方法永远不会被调用。

我确实收到了其他事件的通知,例如 turnBasedMatchmakerViewController(_ viewController: GKTurnBasedMatchmakerViewController, didFind match: GKTurnBasedMatch)player(_ player: GKPlayer, receivedTurnEventFor match: GKTurnBasedMatch, didBecomeActive: Bool)

此外,我确实从屏幕顶部的游戏中心获得了横幅,如果我点击它,它会注册回合事件,但它不会检测何时收到邀请。

有什么建议吗?

我写了一个错误,抱怨 didAcceptInvite 从不触发。 Apple 关闭了这个错误,说这是故意的,didAcceptInvite 只适用于实时匹配(即使文档没有这么说)。

我想做与您描述的相同的事情:提供始终最新的匹配项列表。尽管有游戏中心通知,但我从未发现我可以检测到自己的事件。

最后,我将 table 放在单独的视图上,并在每次显示视图或用户下拉刷新 table 时查询所有匹配项的列表看法。我考虑过使用计时器来定期刷新列表,但实际上并没有做到这一点。