web-dev-qa-db-ja.com

クラス初期化のオプションパラメータ

私はSwift、Sprite-Kit、Xcode6を使用しています

私はこのように宣言されたクラスを持っています:

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にしたい場合、どうすればそうすることができますか?パラメータを削除できません。エラーが発生します...

16
Drakalex

必要なのはrotationSpeedのデフォルト値を設定することですが、タイプを宣言してデフォルト値を割り当てるのを忘れています。 rotationSpeed: 0.0)と言う代わりに、rotationSpeed: CGFloat = 0があります。イニシャライザを次のように表示します。

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

this SO投稿も役立つかもしれません

19
Daniel Galasko