3

我正在尝试清除 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 message:(null) creationDate:2014-03-14 23:44:06 +0000 currentParticipant:(null)参与者:(空)matchData.length:0 matchDataMaximumSize:65536 交换:(空)

我看过删除无效游戏的帖子,但我的错误不是邀请引起的,我没有参与者可以更改状态。不幸的是,我不记得究竟是什么导致了这个错误,我一直在尝试复制它,但到目前为止还没有“运气”。谁能帮我弄清楚可能是什么原因造成的以及如何清除这些游戏?谢谢!!

4

1 回答 1

0

我知道你发布这个问题已经很长时间了,但今天我遇到了类似的情况,我的解决方案是“强制” participantQuitOutOfTurnWithOutcome:,即使我没有参与者。

         [updatedMatch participantQuitOutOfTurnWithOutcome:GKTurnBasedMatchOutcomeQuit withCompletionHandler:^(NSError *error)
          {
              if (error)
              {}
              else
              {}
          }];
于 2015-06-18T09:33:25.850 回答