Ios 有没有办法在不发送推送通知的情况下调用saveCurrentTurnWithMatchData?
我有一个游戏中心游戏,允许玩家每回合多个动作。在iOS 6中,苹果在saveCurrentTurnWithMatchData中实现了一个很好的功能,让你可以做到这一点——它将数据保存到游戏中心,以防止作弊,例如,反复重做一个动作,而不前进到下一个玩家 问题是,我发现这实际上触发了玩家结束回合时发送的相同推送通知taht。因此,游戏中的其他玩家会在应用程序图标上看到一个徽章,并错误地认为该轮到他们了Ios 有没有办法在不发送推送通知的情况下调用saveCurrentTurnWithMatchData?,ios,apple-push-notifications,gamekit,Ios,Apple Push Notifications,Gamekit,我有一个游戏中心游戏,允许玩家每回合多个动作。在iOS 6中,苹果在saveCurrentTurnWithMatchData中实现了一个很好的功能,让你可以做到这一点——它将数据保存到游戏中心,以防止作弊,例如,反复重做一个动作,而不前进到下一个玩家 问题是,我发现这实际上触发了玩家结束回合时发送的相同推送通知taht。因此,游戏中的其他玩家会在应用程序图标上看到一个徽章,并错误地认为该轮到他们了 有人找到了解决办法吗?有没有办法在不发送推送通知的情况下调用saveCurrentTurnWith
有人找到了解决办法吗?有没有办法在不发送推送通知的情况下调用saveCurrentTurnWithMatchData?如果不是,这似乎是一个应该引起苹果注意的设计缺陷。我同意,这似乎是一个设计缺陷。我还开发了一个基于回合的游戏,玩家可以在将控制权移交给下一个玩家之前采取一些行动。同时,我希望其他球员在观看比赛时能看到每一个动作。如果其他玩家没有运行该应用程序,我希望他们只在控件传递给其他玩家时接收推送通知 我没有使用
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
}
}
];
不幸的是,这将向当前参与者安装了游戏的任何其他设备发送推送通知,如可能的重复所述