2014-03-18 87 views
3

我试图清除所有我的比赛在游戏中心,和我使用下面的代码可以这样做:如何删除游戏中心游戏参与者0

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:疯鲨鱼GamesTEST.Letterslide状态:GKTurnBasedMatchStatusOpen消息:(空)creationDate:2014-03- 14 23:44:06 +0000 currentParticipant:(null)参与者:(null)matchData.length:0 matchDataMaximumSize:65536交换:(空)

我已经看到删除无效游戏的帖子,但是我的错误是不是由邀请引起的,我没有参与者来改变状态。不幸的是,我不记得我做了什么导致这个错误,我一直在试图复制它,但迄今没有“运气”。任何人都可以帮我弄清楚可能会造成这种情况以及如何清除这些游戏?谢谢!!

+1

可能发送错误报告? – MadShark

回答

0

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

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