如何删除0参与者的游戏中心游戏

时间:2014-03-18 18:39:02

标签: objective-c game-center gamekit gkturnbasedmatch

我正在尝试清除Game Center中的所有匹配项,我正在使用以下代码执行此操作:

if ([GKLocalPlayer localPlayer].authenticated == NO) {
    [[GKLocalPlayer localPlayer] setAuthenticateHandler:^(UIViewController*   viewcontroller, NSError *error) {
         [GKTurnBasedMatch loadMatchesWithCompletionHandler: ^(NSArray *matches, NSError *error){
              for (GKTurnBasedMatch *match in matches) {
                  NSLog(@"Match ID:%@", match.matchID);
                  [match removeWithCompletionHandler:^(NSError *error){
                      NSLog(@"%@", error);}];
              }}];
     }];
} else {
    NSLog(@"Already authenticated!");
}

这几乎适用于我的所有游戏,除了少数几个都有0个参与者。这些游戏的描述如下:

GKTurnBasedMatch 0x17eb78b0 - matchID:2e36f8fe-5b07-4fea-9e8f-6997187f2235 bundleID:Mad-Shark-GamesTEST.Letterslide状态:GKTurnBasedMatchStatusOpen消息:(null)creationDate:2014-03-14 23:44:06 +0000 currentParticipant: (null)参与者:(null)matchData.length:0 matchDataMaximumSize:65536交换:(null)

我看过关于删除无效游戏的帖子,但我的错误不是由邀请引起的,我没有参与者改变状态。不幸的是,我不记得我做了什么导致这个错误,我一直试图复制它,但到目前为止没有“运气”。任何人都可以帮助我找出可能导致这种情况的原因以及如何清除这些游戏?谢谢!!

1 个答案:

答案 0 :(得分:0)

我知道很久以来你发布了这个问题,但是今天我遇到了类似的情况,我的解决方案是强迫"强迫" participantQuitOutOfTurnWithOutcome:,即使我没有参与者。

         [updatedMatch participantQuitOutOfTurnWithOutcome:GKTurnBasedMatchOutcomeQuit withCompletionHandler:^(NSError *error)
          {
              if (error)
              {}
              else
              {}
          }];