0

我在 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)

提出了一个类似的问题,但他们的解决方案在故事板中。我没有故事板,只有代码。

4

2 回答 2

3

您正在崩溃,因为您的 UIView(即您的 self.view)的实际类型不是 SKView。因此,您不能向下转换为 SKView,因为它不是 SKView。因此,无论您在何处创建 ViewController 的视图,都必须为其分配一个 UIView。您说您没有使用情节提要,所以我假设您正在以编程方式创建 ViewController。如果是这种情况,您需要手动为您的 ViewController 的视图分配一个 SKView。这通常在 ViewController 的 loadView 方法中完成。你可以在这里看到一个例子

于 2015-07-13T00:29:57.633 回答
0

只需在主 UIView 的自定义类下的 ViewController 文件的情节提要中编写 SKView,如图所示。在此处输入图像描述 这将简单地解决您的所有问题。

于 2021-12-24T17:09:21.083 回答