gpt4 book ai didi

ios - 初始化 GKMatchMakerViewController 时出错

转载 作者:搜寻专家 更新时间:2023-10-31 23:04:18 25 4
gpt4 key购买 nike

我正在尝试制作一款使用实时比赛的简单在线多人游戏。但是,当我尝试启动 GKMatchmakerViewController 时,它会抛出一个错误。
这是我正在运行的当前代码:

func openMatchmaker() {
var gcViewController: GKMatchmakerViewController = GKMatchmakerViewController(rootViewController: self)

gcViewController.matchmakerDelegate = self

gcViewController.hosted = false
gcViewController.matchRequest.minPlayers = 2
gcViewController.matchRequest.maxPlayers = 2
gcViewController.matchRequest.defaultNumberOfPlayers = 2

self.showViewController(gcViewController, sender: self)
self.navigationController?.pushViewController(gcViewController, animated: true)
}

但是它在运行时会抛出这个错误:

Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'adding a root view controller <GameName.GameViewController: 0x12e61a930> as a child of view controller:<GKMatchmakerViewController: 0x12e92b800>'

现在我以前在尝试使用 GameCenter 排行榜时遇到过这个错误。我通过在没有 rootViewController 参数的情况下启动排行榜 View Controller 来修复它。但是,这不是 GKMatchmakerViewController 的选项,它只会抛出一个不同的错误。非常感谢任何帮助!

编辑:我知道你们中的很多人都关注我展示 View Controller 的那一行,但是我认为错误是在我第一次初始化 View Controller 时:var gcViewController: GKMatchmakerViewController = GKMatchmakerViewController(rootViewController: self) 并且可能与将 rootViewController 设置为 self 有关。那只是一个想法。再次感谢!

最佳答案

好的,我回去重写了代码如下:

func displayGameMaker(){
if (GKLocalPlayer.localPlayer().authenticated){
var request = GKMatchRequest()
request.minPlayers = 2
request.maxPlayers = 2
request.inviteMessage = "You have been invited to a game!"
var vc = GKMatchmakerViewController(matchRequest: request)
vc.matchmakerDelegate = self
self.showViewController(vc, sender: self)
}
}

因此,如果将来有人在制作 GKMatchmakerViewController 时遇到困难,这就是方法。我只需要使用 matchRequest 而不是使用 rootViewController。

关于ios - 初始化 GKMatchMakerViewController 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28141222/

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