GKTurnBasedMatch检测邀请

时间:2017-04-23 01:12:19

标签: gkturnbasedmatch

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

我尝试了实施:

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)

另外,我确实从屏幕顶部的游戏中心获取横幅,如果我点击它,它会注册转弯事件,但它只是不会检测到何时收到邀请。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我写了一个抱怨didAcceptInvite永远不会发火的错误。苹果公司关闭了该漏洞,称这是故意的,didAcceptInvite仅适用于实时匹配(即使文档没有说明)。

我想做你描述的同样的事情:提供一个永远最新的匹配列表。尽管游戏中心注意到了,但我从来没有发现过我能发现自己的事件。

最后,我在一个单独的视图中放置了一个表,并在每次显示视图或用户拉出以刷新视图内的表时查询所有匹配的列表。我考虑过使用计时器来定期刷新列表,但实际上从未真正走过那么远。