我在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.
时崩溃,显示以下消息:
无法将'UIView'(0x1079b7e88)类型的值转换为'SKView'(0x106b79718)
提出了类似的问题,但他们的解决方案是在故事板中。 我没有故事板,只是代码。
答案 0 :(得分:3)
您正在遭遇崩溃,因为您的UIView(即您的self.view)实际类型不是SKView。因此,您无法向SKView转发,因为它不是SKView。因此,无论您在何处创建ViewController视图,都必须为其分配UIView。你说你没有使用故事板,所以我假设你是以编程方式创建ViewController。如果是这种情况,您需要手动为ViewController的视图分配SKView。这通常在ViewController的loadView方法中完成。您可以看到此here
的示例