我有一个视图,列出本地播放器(注册为侦听器)的所有可用匹配项。我的问题是,当玩家收到新比赛的邀请时,我想要更新我的列表。
我试着实施:
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)
此外,我确实从游戏中心的屏幕顶部得到横幅,如果我点击它,它确实注册了转弯事件,但它只是无法检测何时收到邀请。
有什么建议吗?
发布于 2017-04-23 17:46:53
我写了一个bug,抱怨didAcceptInvite从不开火。苹果关闭了这一漏洞,称这是有意的,didAcceptInvite只适用于实时匹配(尽管文档中没有这么说)。
我想做您描述的相同的事情:提供一个始终当前的匹配列表。尽管游戏中心发出了通知,但我始终没有发现自己能察觉到的事件。
最后,我将一个表放在一个单独的视图上,并在每次显示视图或用户在视图中拉出表刷新表时,查询所有匹配的列表。我考虑过使用计时器定期刷新列表,但实际上从未做过那么多。
https://stackoverflow.com/questions/43566370
复制相似问题