gpt4 book ai didi

ios - GKTurnBasedMatch 如何接受新的比赛邀请

转载 作者:行者123 更新时间:2023-11-28 08:35:48 24 4
gpt4 key购买 nike

使用 GameKit 的标准用户界面以编程方式接受匹配邀请的正确方法是什么?

我看到一个expectedState="Invited"foundState="Active" 异常

Optional(Error Domain=GKErrorDomain Code=22 
"The requested operation could not be completed because the specified participant is invalid."
UserInfo={GKServerStatusCode=5097,
NSLocalizedDescription=The requested operation could not be completed because the specified participant is invalid.,
NSUnderlyingError=0x14fa2cf70 {
Error Domain=GKServerErrorDomain Code=5097 "status = 5097,
Unexpected slot state expectedState="Invited" foundState="Active"

异常发生在以下场景:
玩家 1 - 创建与玩家 2 的新比赛
玩家 1 - 迈出第一步
玩家 2 - 尝试从回合制比赛中加载数据并接受比赛邀请。

我正在使用 iOs 的标准用户界面进行配对。 GKTurnBasedMatchmakerViewController

请求新匹配

let matchRequest = GKMatchRequest()
matchRequest.minPlayers = 2
matchRequest.maxPlayers = 2
matchRequest.defaultNumberOfPlayers = 2
matchRequest.inviteMessage = "Play BoxTheDots with me"
matchRequest.recipientResponseHandler = self.matchMaker?.recipientResponse

let matchView = GKTurnBasedMatchmakerViewController(matchRequest: matchRequest)
self.presentViewController(matchView, animated: true, completion: nil)
matchView.turnBasedMatchmakerDelegate = self.matchMaker?.matchViewController

我正在以编程方式接受匹配邀请,这导致并打印了错误。

代码流从GKTurnBasedMatchmakerViewControllerDelegate didFindMatch method开始

func turnBasedMatchmakerViewController(viewController: GKTurnBasedMatchmakerViewController, didFindMatch match: GKTurnBasedMatch){
match.loadMatchDataWithCompletionHandler(self.matchDataLoaded)
match.acceptInviteWithCompletionHandler(self.acceptInvite)
}

private func acceptInvite(match:GKTurnBasedMatch?, error:NSError?){
guard error == nil else {
LogUtil.log(.CRITICAL, sub: .ERROR, o: self, method: method, msg: "could not accept match invite. \(error)")
return
}
}

第一个回合后的玩家 1 enter image description here

玩家 2 在从玩家 1 加载比赛之前 enter image description here

最佳答案

我回答了一个关于完全以编程方式处理的回合制比赛的问题 here ,尽管页面上的问题是关于使用标准GKTurnBasedMatchMakerViewController,但我相信该帖子中的信息可能会有所帮助。

当然,我们想要的是一个名为 localPlayerDidAcceptInvitation(...) 的简单委托(delegate)函数。但如果没有,该链接上提供的信息可能有助于拼凑一些有用的东西。

关于ios - GKTurnBasedMatch 如何接受新的比赛邀请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37758846/

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