Swift - 调用中缺少参数 "coder" 的参数

Swift - Missing argument for parameter "coder" in call

我正在尝试暂停或停止一个永远重复的 SKAction,这应该在用户按下暂停按钮时发生。我找到了一种停止音乐的方法,但由于这个错误,我无法调用它所在的函数。它准确地说:Missing argument for parameter 'coder' in call.

Class GameViewController: UIViewController, SwiftrisDelegate, UIGestureRecognizerDelegate     {

    @IBAction func didPause(sender: UIButton) {
        if self.scene.paused == false{
            self.scene.stopTicking()
            self.scene.paused = true
            GameScene().stopGameMusic() //error on this line
        }
    }
}

class GameScene: SKScene {

    runAction(SKAction.playSoundFileNamed("theme.mp3", waitForCompletion: true), withKey:("themeSong"))

    func stopGameMusic() {
        removeActionForKey("themeSong")
    }
 }

GameScene 没有不带参数的初始值设定项 - 您既没有定义也没有从 SKScene 继承。如果您打算在每次推送 'pause' 时创建一个 GameScene,这本身就是一个有问题的方法,那么您需要调用现有的初始化程序或创建一个初始化程序 w/o any参数。

看起来 SKScene 的指定初始值设定项是 init(size: CGSize)。所以不是简单地调用 GameScene() 而是调用 GameScene(size: ...) 或者,在 class GameScene 中定义

class GameScene : SKScene {
  // ... 

  init () {
    super.init (size: ...)
  }
}