2014-12-17 38 views
10

pracuję z Swift, Sprite-Kit i Xcode 6,Opcjonalny parametr inicjalizacji klasy

Mam klasy zadeklarowane tak:

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 
} 

Więc mogę przypisać zmienną do tej klasy tak:

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

ale jeśli na przykład nie chcę, aby zainicjować wartości rotationSpeed ​​i to domyślnie 0.0, w jaki sposób udaje mi się zrobić? Nie mogę usunąć parametru, powoduje to błąd ...

Odpowiedz

12

To, czego chcesz, to ustawić domyślną wartość dla rotacjiSpeed, ale zapominasz o zadeklarowaniu typu i przypisaniu wartości domyślnej. Zamiast powiedzieć: rotationSpeed: 0.0), masz rotationSpeed: CGFloat = 0. Dokonywanie initializer wyglądać następująco:

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

też może znaleźć this SO po przydatna także

+0

ja już widziałem ten post, ale po przeczytaniu go ponownie Zrozumiałem dzięki, mój zły – Drakalex