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: ...)
}
}
我正在尝试暂停或停止一个永远重复的 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: ...)
}
}