如何解决“无法为类型'MBMovingGround调用初始化程序?”没有参数”错误迅速

时间:2019-04-13 14:25:16

标签: swift xcode

我正在制作Swift游戏,但是我的编码经验非常有限 我正在按照youtube上的指南进行操作并获得基本了解 https://www.youtube.com/watch?v=5Q18FYgLYYo&list=PL1YTxp2xLtqSiBhoAiaImXFcjAAxvo1es&index=4

我尝试了Xcode的建议,但是我被卡在这个错误上: “无法为类型'MBMovingGround调用初始化程序吗?”没有参数”

这是我的“ GameScene.swift”文件的一部分

var movingGround = MBMovingGround?()

override func didMove (to view: SKView) {
    backgroundColor = UIColor(red: 159.0/255.0, green: 201.0/255.0, blue: 244.0/255.0, alpha: 1.0)

    movingGround = MBMovingGround(size: CGSize(width: view.frame.width, height: 20))
    movingGround.position = CGPoint(x: 0,y: view.frame.size.height/2)
    addChild(movingGround)
}

func TouchesBegan(touches: NSSet, withEvent event: UIEvent?) {
    movingGround.start()

2 个答案:

答案 0 :(得分:0)

从此处()删除var movingGround = MBMovingGround?()并以此方式var movingGround = MBMovingGround?进行声明。 您的类MBMovingGround没有没有参数的初始化程序,因此不能像使用()那样使用没有参数的空初始化程序。

否则,您可以使用大小为零的参数对其进行初始化:

var movingGround = MBMovingGround(size: .zero)

答案 1 :(得分:0)

错误非常明显:

您必须使用带有MBMovingGround(size:)之类的参数的初始化程序,但必须不要使用默认的初始化程序MBMovingGround()

在这种情况下,声明该变量并稍后对其进行初始化

var movingGround : MBMovingGround?

或-更好-使用 empty 值将其非可选地初始化

var movingGround = MBMovingGround(size: .zero)

声明具有默认值的可选内容还是没有道理的。