ComboBox с последовательным подключением не обновляется при нажатии

«super.init ()» следует вызывать после инициализации всех ваших переменных экземпляра.

В видеоролике Apple «Intermediate Swift» (вы можете найти ее на странице видеоресурсов разработчика Apple https://developer.apple.com/videos/wwdc/2014/), примерно в 28:40, явно сказано, что все инициализаторы в суперклассе должны быть вызваны ПОСЛЕ того, как вы инициализируете переменные экземпляра.

В Objective-C это было наоборот. В Swift, поскольку все свойства должны быть инициализированы до его использования, нам нужно сначала инициализировать свойства. Это означает предотвращение вызова функции переопределения из метода «init ()» супер класса без первоначальной инициализации свойств.

Таким образом, реализация «Квадрат» должна быть:

class Square: Shape {
    var sideLength: Double

    init(sideLength:Double, name:String) {
        self.sideLength = sideLength
        numberOfSides = 4
        super.init(name:name) // Correct position for "super.init()"
    }
    func area () -> Double {
        return sideLength * sideLength
    }
}

0
задан Kenny DelMar 28 February 2015 в 07:46
поделиться