2016-06-02 8 views
0

私は私が仕事にしようとしています。この迅速なスプライトキットのプロジェクトを持っているが、私はここでEXC_BAD_ACCESSコード1で、起動時にそれがGameViewControllerにクラッシュするゲームを実行するたびに私のコードです:私のコードが不正なアクセス例外を返すのはなぜですか?

class GameViewController: UIViewController { 

@IBOutlet var imageBanner: UIImageView? 
@IBOutlet var textBanner: UILabel? 
@IBOutlet var playButton: UIButton? 
@IBOutlet var shareButton: UIButton? 
@IBOutlet var infoButton: UIButton? 

var skView = SKView() 
var scene = SKScene() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    print("View did load") 
    skView = SKView(frame: self.view.frame) 
    print("1") 
    scene = GameScene(size: skView.bounds.size) 
    print("2") 
    skView.showsFPS = false 
    print("3") 
    skView.showsNodeCount = false 
    skView.ignoresSiblingOrder = true 
    scene.scaleMode = .AspectFill 
    print("Done") 
} 

私はそれが "完了"がコンソールに記録されていることに注意する価値があると思います。

答えて

0

新しいSKViewを作成しないでください。 そして、なぜあなたは使用しないでSKScene()で初期化されたシーン変数を作成していますか?

XcodeがGameViewControllerのために生成するコードを使用してください。

class GameViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     if let scene = GameScene(fileNamed:"GameScene") { 
      // Configure the view. 
      let skView = self.view as! SKView 
      skView.showsFPS = true 
      skView.showsNodeCount = true 

      /* Sprite Kit applies additional optimizations to improve rendering performance */ 
      skView.ignoresSiblingOrder = true 

      /* Set the scale mode to scale to fit the window */ 
      scene.scaleMode = .AspectFill 

      skView.presentScene(scene) 
     } 
    } 

    // more stuff here 
} 
+0

それはまだクラッシュ、そしてそれは私がシーンとすぐビューがロードされたようにポップアップしたくなかったので、私は再生ボタンがクリックされたとき、それがポップアップしたかったです。 – jacobsan420

関連する問題