Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 有没有办法在不发送推送通知的情况下调用saveCurrentTurnWithMatchData?_Ios_Apple Push Notifications_Gamekit - Fatal编程技术网

Ios 有没有办法在不发送推送通知的情况下调用saveCurrentTurnWithMatchData?

Ios 有没有办法在不发送推送通知的情况下调用saveCurrentTurnWithMatchData?,ios,apple-push-notifications,gamekit,Ios,Apple Push Notifications,Gamekit,我有一个游戏中心游戏,允许玩家每回合多个动作。在iOS 6中,苹果在saveCurrentTurnWithMatchData中实现了一个很好的功能,让你可以做到这一点——它将数据保存到游戏中心,以防止作弊,例如,反复重做一个动作,而不前进到下一个玩家 问题是,我发现这实际上触发了玩家结束回合时发送的相同推送通知taht。因此,游戏中的其他玩家会在应用程序图标上看到一个徽章,并错误地认为该轮到他们了 有人找到了解决办法吗?有没有办法在不发送推送通知的情况下调用saveCurrentTurnWith

我有一个游戏中心游戏,允许玩家每回合多个动作。在iOS 6中,苹果在saveCurrentTurnWithMatchData中实现了一个很好的功能,让你可以做到这一点——它将数据保存到游戏中心,以防止作弊,例如,反复重做一个动作,而不前进到下一个玩家

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


有人找到了解决办法吗?有没有办法在不发送推送通知的情况下调用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
    }
  }
];

不幸的是,这将向当前参与者安装了游戏的任何其他设备发送推送通知,如可能的重复所述