2014-12-17 9 views
10

Я работаю с 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, как я могу управлять, чтобы сделать это? Я не могу удалить параметр, это приводит к ошибке ...

ответ

12

Вы хотите установить значение по умолчанию для rotationSpeed, но вы забыли объявить тип и присвоить значение по умолчанию. Вместо того, чтобы говорить rotationSpeed: 0.0), у вас будет rotationSpeed: CGFloat = 0. Оформление ваш инициализатор выглядеть следующим образом:

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

Вы можете также найти this SO пост полезные, а также

+0

я уже видел этот пост, но после прочтения его снова я понял, спасибо, мой плохой – Drakalex

Смежные вопросы