如果我的理解是正确的,则更新 GKTurnBasedMatch 中途的 matchData 属性的唯一方法是 [_currentMatch endTurnWithNextParticipant:_currentParticipant matchData:matchData finishHandler:nil]。
如果 Game Center 玩家仅在一台设备上安装了游戏,则此方法效果很好,因为通知会作为发送给应用程序的消息传递到设备。因此,当用户当前正在玩他的回合时,可以隐藏通知。但是,如果用户在多个设备上安装了游戏,其他设备将收到“轮到你了”推送通知。这让用户感到困惑,尤其是我多次更新 matchData。
顺便说一句,我知道我可能没有按预期使用 endTurnWithNextParticipant:matchData:completionHandler: 函数(因为事实上我并没有结束比赛......而只是更新 matchData)。然而,似乎没有其他选择可以在回合中更新比赛的状态。
iOS 6 中添加了中途保存功能:
-[GKTurnBasedMatch saveCurrentTurnWithMatchData:completionHandler:]
Source: GKTurnBasedMatch 类参考
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)