我在 GameViewController.swift 中有以下代码:
override func viewDidLoad() {
super.viewDidLoad()
let scene: GameScene = GameScene()
let currentView = self.view as! SKView
currentView.showsFPS = true
currentView.showsNodeCount = true
currentView.presentScene(scene)
}
它在 let currentView = self.view as 处崩溃! SKView.
带有此消息:
Could not cast value of type 'UIView' (0x1079b7e88) to 'SKView' (0x106b79718)
有人提出了类似的问题,但他们的解决方案在 Storyboard 中。 我没有 Storyboard,只有代码。
最佳答案
您遇到崩溃是因为您的 UIView(即您的 self.view)的实际类型不是 SKView。所以你不能向下转换为 SKView,因为它不是 SKView。因此,无论您在何处创建 ViewController 的 View ,都必须为其分配一个 UIView。你说你没有使用 Storyboard ,所以我假设你是以编程方式创建 ViewController 的。如果是这种情况,您需要手动为 ViewController 的 View 分配一个 SKView。这通常在 ViewController 的 loadView 方法中完成。你可以看到这个 here 的例子
关于ios - 将 UIView 转换到 SKView 时线程 1 信号 SIGABRT 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373244/