gpt4 book ai didi

ios - 游戏中心 "the specified participant does not have the required turn state"

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:07 26 4
gpt4 key购买 nike

当我尝试在 Sandbox Game Center 回合制游戏中发送回合时,偶尔会收到以下错误。

Error Domain=GKErrorDomain Code=23 "The requested operation could not be completed because the specified participant does not have the required turn state." UserInfo=0x209e5110 {GKServerStatusCode=5103, NSUnderlyingError=0x209e56b0 "The operation couldn’t be completed. status = 5103, Session: 4d278ed6-d546-4d31-bb6f-0a4ae89873aa current turn: 8 isn't as expected: 1", NSLocalizedDescription=The requested operation could not be completed because the specified participant does not have the required turn state.

“当前回合”和“预期”数字不同。我在两台设备之间发送,一台使用 iOS5,一台使用 iOS6。我已使用以下行计算旧电话的折旧:

if([match respondsToSelector:@selector(endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:)]){
[match endTurnWithNextParticipants:@[nextParticipant] turnTimeout:inval matchData:data completionHandler:completeEndTurn];
}
else{
[match endTurnWithNextParticipant:nextParticipant matchData:data completionHandler:completeEndTurn];
}

输入参数“看起来”是正确的,即我看不到任何明显的错误。但是,我真的不明白错误信息。我试图通过搜索找到更多信息,但找不到任何可以解释该错误的内容。 Apple 文档只有消息中给出的文本。谁能指出我更详细地解释错误的地方?另外,“状态”是否表示参与者在另一台设备上的“状态”?

谢谢。

最佳答案

在我的例子中,这个错误是由于我使用了不正确的(旧的)匹配对象来结束回合。显然,这个对象在游戏过程中会发生变化,每次调用 handleTurnEventForMatch 时,您都需要使用您在 handleTurnEventForMatch 中获得的内容来更新存储的匹配实例。喜欢雷said ,

- (void) handleTurnEventForMatch:(GKTurnBasedMatch *)match 
{
NSLog(@"Turn has happened");
if ([match.matchID isEqualToString:currentMatch.matchID])
{
...
self.currentMatch = match; // <-- renew your instance!
...
}
}

因此,当我开始使用最新的 currentMatch 结束回合时,错误消失了。

我也在这个 comment 中找到了相同的解决方案,但花了一些时间才意识到这是我所需要的)

希望这对您有所帮助,干杯!

关于ios - 游戏中心 "the specified participant does not have the required turn state",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17251405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com