如果我的理解是正确的,更新 GKTurnBasedMatch 中转的 matchData 属性的唯一方法是 [_currentMatch endTurnWithNextParticipant:_currentParticipant matchData:matchData completionHandler:nil]。
如果 Game Center 玩家只在一台设备上安装了游戏,这会很有效,因为通知会作为消息传递给设备,发送给应用程序。因此,可以在用户当前轮到他玩时隐藏通知。但是,如果用户在多个设备上安装了该游戏,则其他设备将收到“轮到你了”推送通知。这会让用户感到困惑,尤其是我多次更新 matchData。
顺便说一句,我知道我可能没有按预期使用 endTurnWithNextParticipant:matchData:completionHandler: 函数(因为我实际上并没有结束比赛……而只是更新了比赛数据)。但是,似乎没有其他方法可以在回合中更新比赛的状态。
最佳答案
在 iOS 6 中添加了中转保存:
-[GKTurnBasedMatch saveCurrentTurnWithMatchData:completionHandler:]
关于ios - 有没有办法在不发送 "Your Turn"推送通知的情况下更新 GKTurnBasedMatch 中的 matchData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760209/