2014-12-17 10 views
10

sto lavorando con Swift, Sprite-Kit e Xcode 6,parametro Extra in inizializzazione classe

ho una classe dichiarata come questo:

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 
} 

modo che io possa assegnare una variabile a questa classe in questo modo:

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

ma se per esempio io non voglio inizializzare il valore rotationSpeed ​​e lo hanno di default a 0.0, come posso riuscire a fare così? Non riesco a rimuovere il parametro, mi risulta un errore ...

risposta

12

Quello che vuoi è impostare un valore predefinito per rotationSpeed ​​ma ti stai dimenticando di dichiarare il tipo e assegnare un valore predefinito. Invece di dire rotationSpeed: 0.0) avresti rotationSpeed: CGFloat = 0. Rendere il vostro look di inizializzazione in questo modo:

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

Si potrebbe anche trovare this SO utile post così

+0

ho già visto questo post, ma dopo aver letto di nuovo ho capito, grazie, il mio male – Drakalex