SKView未在单视图应用程序中显示

时间:2015-10-12 21:27:14

标签: ios xcode sprite-kit

尝试在我的单一视图应用程序中实现游戏。我按照将Spritekit.framework添加到我的应用程序中的步骤。然后我尝试将SKView添加到我的viewcontroller的自定义类中,但Xcode 7似乎不喜欢这样,所以模块部分是空白的。然后在编译后我总是崩溃:

  

由于未捕获的异常'NSUnknownKeyException'而终止应用,   理由:'[SKView]'

import UIKit
import SpriteKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        var spriteView: SKView = self.view as! SKView
        spriteView.showsDrawCount = true
        spriteView.showsNodeCount = true
        spriteView.showsFPS = true

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

enter image description here

我将如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

感谢您发布代码。

首先。您正在从UIView创建SKView。我想你可能已经从新的SpriteKit模板中删除了这个?如果您检查模板的故事板,我想您会发现已添加到控制器的视图是SKView。

将故事板中的这个更改为SKView将解决您的问题,但是您的控制器的基本视图现在将是SKView,您可能想要也可能不想要。

或者,您可以将SKView添加为子视图:

import UIKit
import SpriteKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        var spriteView = SKView(frame: view.frame)
        spriteView.showsDrawCount = true
        spriteView.showsNodeCount = true
        spriteView.showsFPS = true
        view.addSubview(spriteView)
    }
}

答案 1 :(得分:1)

我最初没有注意到它,但是你将SKView类分配给UIViewController。您需要将其切换到ViewController类,然后向下查看并将其更改为SKView。

enter image description here

enter image description here

希望这有帮助。