ios - 将 UIView 转换到 SKView 时线程 1 信号 SIGABRT 崩溃

标签 ios swift uiview sprite-kit skview

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

相关文章:

ios - dispatch syn 如何导致死锁? ios

ios - Swift:对特定对象 ID 的 CoreData 调用

swift - 展开可选实例属性的最佳位置——创建时或调用时?

ios - 当键盘为 numberPad、phonePad 或 DecimalPad 时应用程序崩溃(iOS 12.2、Xcode 10.2)

iphone - 这种编程范式对我的成功至关重要吗?

ios - GMSAddress placeID属性丢失。

iOS 为所有网络浏览器支持录制的视频

iOS Swift : How to build two different . ipa 用于同一项目的不同国家

ios - 如何使父 View 自动调整大小并与其 subview 协调?

ScrollView 中嵌入 View 的 iOS 7 自动布局