2014-12-17 8 views
10

Ich arbeite mit Swift, Sprite-Kit und Xcode 6,optionaler Parameter in Klasseninitialisierung

Ich habe eine Klasse wie folgt erklärt:

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 
} 

Also habe ich eine Variable dieser Klasse zuweisen dies wie:

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

aber wenn zum Beispiel ich will nicht den Wert Drehgeschwindigkeit initialisieren und es auf 0,0 Standard haben, wie kann ich es schaffe, dies zu tun? Ich kann den Parameter nicht entfernen, es ergibt sich ein Fehler ...

Antwort

12

Sie möchten einen Standardwert für rotationSpeed ​​festlegen, aber Sie vergessen, den Typ zu deklarieren und einen Standardwert zuzuweisen. Anstatt rotationSpeed: 0.0) zu sagen, hätten Sie rotationSpeed: CGFloat = 0. Machen Sie Ihre initializer wie folgt aussehen:

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

Sie könnten auch this SO Post nützlich finden

+0

ich bereits diesen Beitrag sah aber, nachdem es wieder zu lesen verstand ich, danke, mein schlechtes – Drakalex

Verwandte Themen