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!");
}

そして、これは私のゲームのほとんどすべてで機能しますが、参加者がゼロのいくつかのゲームを除きます。これらのゲームの説明は次のとおりです。

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 exchanges:(null)

無効なゲームの削除に関する投稿を見ましたが、私のエラーは招待によるものではなく、状態を変更する参加者がいません。残念ながら、このエラーの原因を正確に思い出せず、再現しようとしましたが、これまでのところ「運」はありません。これを引き起こした原因と、これらのゲームをクリアする方法を理解するのを手伝ってくれる人はいますか? ありがとうございました!!

4

1 に答える 1

0

あなたが質問を投稿してから長い時間が経っていることは知っていますが、今日私は同様の状況に遭遇し、私の解決策はparticipantQuitOutOfTurnWithOutcome:参加者がいなくても「強制」することでした.

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