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

标签 ios function swift arguments

我正在尝试暂停或停止一个永远重复的 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 继承。如果您打算在每次按下“暂停”时创建一个 GameScene,这本身就是一个有问题的方法,那么您将需要调用现有的初始化程序或创建一个不带任何参数的初始化程序.

看起来 SKScene 的指定初始化程序是 init(size: CGSize)。因此,与其简单地调用 GameScene(),不如调用 GameScene(size: ...),或者在类 GameScene 中定义

class GameScene : SKScene {
  // ... 

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

关于ios - Swift - 调用中参数 "coder"缺少参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27877842/

相关文章:

ios - 在我设置内容大小并测试它改变后,Scrollview 不滚动

objective-c - 如何在ScrollView中实现动态UITTableViews,动态量为 'pages'

c - void function(stuct *s) 与 void function(stuct s) 有什么区别?

function - 以矩阵接口(interface)为参数的Go函数

ios - 减少包含音频文件的 ios native 应用程序大小

ios - CGAffineTransformMakeScale animation on a cornerRadius rounded UIButton

c# - 在 C# 中调用标量函数

ios - 我正在努力处理将数据附加到 IOS 联系人的类型,下面的代码给出了一个错误

swift - 向边界线添加水平渐变

ios - CloudKit 仪表板未更新