6

我正在开发一款基于回合制的 GameCenter 游戏。AGKTurnBasedMatch是用GKMatchRequest,minPlayersmaxPlayers设置为 2 创建的。我有一段NSInvalidArgumentException时间试图用 结束游戏endMatchInTurnWithMatchData,告诉我我没有设置matchOutcome所有参与者。在此之前匹配对象的日志显示我的匹配如下所示:

<GKTurnBasedMatch 0x1c1f2af0 - matchID:c9de6e47-0e9a-4dbe-944b-d2fd4ecd3044 bundleID:com.mybundle.wd status:GKTurnBasedMatchStatusEnded message:'Game Over' creationDate:2013-10-08 01:26:12 +0000 currentParticipant:(null) participants:
<GKTurnBasedParticipant 0x1c184820 - playerID:G:128458444 (local player) status:Done matchOutcome:Lost lastTurnDate:2013-10-10 21:54:22 +0000 timeoutDate:(null)>,
<GKTurnBasedParticipant 0x1c1b0a80 - playerID:G:220673962 status:Done matchOutcome:Lost lastTurnDate:2013-10-10 18:26:16 +0000 timeoutDate:(null)>,
<GKTurnBasedParticipant 0x16ef1610 - playerID:G:128458444 (local player) status:Active matchOutcome:None lastTurnDate:(null) timeoutDate:(null)>,
<GKTurnBasedParticipant 0x16ec64f0 - playerID:(null) status:Matching matchOutcome:None lastTurnDate:(null) timeoutDate:(null)> matchData.length:871 matchDataMaximumSize:65536 exchanges:(null)>

GKTurnBasedParticipants这里有2个以上,其中两个是同一个玩家!我在游戏中没有做任何特别的事情,除了每回合调用以下内容:

[match endTurnWithNextParticipants:@[nextParticipant] turnTimeout:GKTurnTimeoutDefault matchData:data completionHandler:^(NSError *error){...}]

有谁知道这里发生了什么?这是一个两人游戏,那么我怎么会得到一个混乱的匹配对象,我该如何防止这种情况呢?

4

2 回答 2

0

我向 Apple 提交了一个错误,四个月后在电子邮件中收到了这个:

你好基里尔,

这是关于 Bug ID# 15615850 的后续内容。

我们相信这个问题已经得到解决。请使用 iOS 7.1 beta 4 (11D5134c) 版本进行验证,并使用结果更新您的报告。

所以 - 是的,它被确认为一个错误,我仍然不知道有什么解决方法,但是一旦 7.1 出来,我们就会摆脱它。

于 2014-01-23T17:15:58.803 回答
0

我执行以下操作来结束游戏

        ((GKTurnBasedParticipant*)[currentMatch.participants objectAtIndex:1]).matchOutcome = GKTurnBasedMatchOutcomeWon;
        ((GKTurnBasedParticipant*)[currentMatch.participants objectAtIndex:0]).matchOutcome = GKTurnBasedMatchOutcomeLost;

然后我打电话

[currentMatch endMatchInTurnWithMatchData:data completionHandler:^(NSError *error)
{
         if (error)
         {
             NSLog(@"%@", error);
         }
         else{


         }
     }];
于 2013-12-31T13:12:09.380 回答