问题 类初始化中的可选参数


我正在使用Swift,Sprite-Kit和Xcode 6,

我有一个类声明如下:

class Obstacles: SKSpriteNode
{
    init(initTime: Int, speed: CGFloat, positionX: CGFloat, rotationSpeed: CGFloat)
    {
        self.initTime = initTime
        self.rotationSpeed = rotationSpeed
        self.positionX = positionX

        super.init(texture: SKTexture(imageNamed: "Rectangle"), color: SKColor.redColor(), size: CGSize(width: 20, height: 20))
        self.speed = speed
    }

    var initTime: Int
    var positionX: CGFloat
    var rotationSpeed: CGFloat = 0
}

所以我可以像这样给这个类赋一个变量:

var myVariable = Obstacles(initTime: 100, speed: 3.0, positionX: 10.0, rotationSpeed: 0.0)

但是,例如,如果我不想初始化rotationSpeed值并将其默认为0.0,我该如何设法这样做?我无法删除参数,这导致我错误...


7589
2017-12-17 17:21


起源



答案:


你想要的是为rotationSpeed设置一个默认值,但你忘记声明类型并指定一个默认值。而不是说 rotationSpeed: 0.0) 你将会拥有 rotationSpeed: CGFloat = 0。使初始化器看起来像这样:

init(initTime: Int, speed: CGFloat, positionX: CGFloat, rotationSpeed: CGFloat = 0)

你也可能会发现 这个 SO帖子也很有用


13
2017-12-17 17:43



我已经看过这篇文章,但在再次阅读之后,我明白了谢谢,我的不好 - Drakalex


答案:


你想要的是为rotationSpeed设置一个默认值,但你忘记声明类型并指定一个默认值。而不是说 rotationSpeed: 0.0) 你将会拥有 rotationSpeed: CGFloat = 0。使初始化器看起来像这样:

init(initTime: Int, speed: CGFloat, positionX: CGFloat, rotationSpeed: CGFloat = 0)

你也可能会发现 这个 SO帖子也很有用


13
2017-12-17 17:43



我已经看过这篇文章,但在再次阅读之后,我明白了谢谢,我的不好 - Drakalex