【问题标题】:Optional parameter in class initialization类初始化中的可选参数
【发布时间】:2014-12-17 17:21:30
【问题描述】:

我正在使用 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,我该如何做到这一点?我无法删除参数,它会导致我出错...

【问题讨论】:

    标签: class swift initialization sprite-kit init


    【解决方案1】:

    您想要为 rotationSpeed 设置默认值,但您忘记声明类型并分配默认值。不要说rotationSpeed: 0.0),而是rotationSpeed: CGFloat = 0。让你的初始化器看起来像这样:

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

    您还可能会发现 this SO 帖子也很有用

    【讨论】:

    • 我已经看过这篇文章,但再次阅读后我明白了,谢谢,我的错
    • 但是如何为初始化设置可选参数。这回答了问题的意图,但没有回答其他人正在寻找的问题标题。
    猜你喜欢
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多