有没有办法调用saveCurrentTurnWithMatchData而不发送推送通知?

我有一个游戏中心游戏,让玩家每回合多次移动。 在iOS 6中,苹果公司在saveCurrentTurnWithMatchData中实现了一个很棒的function,它可以让你做到这一点 – 它将数据保存到游戏中心,防止通过反复重做移动来作弊,而不会前进到下一个玩家。

问题是,我发现这实际上触发了相同的推送通知,当玩家结束时发送。 所以游戏中的其他玩家会在应用程序的图标上看到一个徽章,并错误地认为这是轮到他们的时候。

有没有人find一个解决方法呢? 任何方式调用saveCurrentTurnWithMatchData而不发送推送通知? 如果不是,这似乎是一个应该引起苹果关注的devise缺陷。

我同意,这似乎是一个devise缺陷。 我也正在开发一种回合制游戏,玩家可以在将控制权交给下一位玩家之前采取多种行动。 同时,我希望其他玩家在观看比赛时见证每一个动作。 如果其他玩家没有运行该应用程序,我希望他们只有在控件传递给其他玩家时才会收到推送通知。

而不是使用saveCurrentTurnWithMatchData:我使用endTurnWithNextParticipants:但我指定了当前的播放器,而不是下一个。 这似乎是诀窍:

 NSTimeInterval interval = 86400; // seconds in a day [currentMatch endTurnWithNextParticipants:[[NSArray alloc] initWithObjects:currentMatch.currentParticipant,nil] turnTimeout:interval matchData:[self packMatchData] completionHandler:^(NSError *error) { if (error) { // handle error } } ];