【发布时间】:2018-07-10 01:29:47
【问题描述】:
在我的 iOS 回合制比赛中,我正在尝试接收通知并获取
public func player(_ player: GKPlayer, receivedTurnEventFor match: GKTurnBasedMatch, didBecomeActive: Bool)
被调用,没有成功。
我将我的视图模型注册到本地播放器
GKLocalPlayer.localPlayer().register(self)
我希望在其他玩家执行后触发
func endTurn(withNextParticipants nextParticipants: [GKTurnBasedParticipant], turnTimeout timeout: TimeInterval, match matchData: Data, completionHandler: ((Error?) -> Swift.Void)? = nil)
但没有成功。
如果我强制重新加载 matchData,那么我将获得第二个玩家刚刚提交的数据。所以 endTurn 工作正常。
是不是我做错了什么?
更新: 所以我创建了一个新项目,复制了我所有的文件, 在功能中仅启用了 Game Center。
当开发它运行完美时,我连接了两台设备(具有不同的苹果 ID)。通知正在工作,Turnbasedlistener 正在触发。
我一发布它进行内部测试,它就停止工作了!!!
【问题讨论】:
-
您是否仔细检查过您的应用程序允许在“设置”下推送通知?如果用户决定不启用推送通知,则不会调用“receivedTurnEventFor”。
-
是的,我做到了,允许推送通知已启用(徽章)
-
所以我创建了一个新项目,复制了我所有的文件,在功能中只启用了 Game Center。当开发它运行完美时,我连接了两个设备(具有不同的苹果 ID)。通知正在工作,Turnbasedlistener 正在触发。我一发布它进行内部测试,它就停止工作了!!!
标签: ios swift gamekit gkturnbasedmatch