2017-04-23 65 views
0

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

而且,我得到来自游戏中心的旗帜在屏幕的顶部,如果我点击它,它会注册之交事件,但只是在收到邀请时才会检测到。

有什么建议吗?

回答

0

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

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

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

+0

谢谢。这就是我所害怕的。我想我可能会去定时器路线。 – coopersita