2014-03-18 82 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 
       {} 
      }];