Переопределить свойство наблюдателя

Когда я отменяю функциюnoise, функция заменяется новой. Но когда я переопределяю свойство с помощью наблюдателя, старое и новое значения выполняются.

На детской площадке:

class Vehicle {
    func noise(sound: String) {
        println("Vehicle sound sounds like \(sound)")
    }
}

class Train: Vehicle {
    override func noise(sound: String) {
        println("A train does: \(sound)")
    }
}

Выход:

var oldTrain = Train()
bulletTrain.noise("tjoek tjoek") // Prints: "A train does: tjoek tjoek"

Но когда я делаю то же самое со свойством наблюдателя:

На детской площадке:

class Foo {
    var something: Int! {
        didSet {
            println("vroom")
        }
    }
}

class Bar: Foo {
    override var something: Int! {
        didSet {
            println("toot toot")
        }
    }
}

Выход:

var foobar = Bar()
foobar.something = 3 // Prints: "vroom" & "toot toot"

Итак, как мне переопределить свойство с помощью наблюдателя и как предотвратить выполнение старых значений?

Ответы на вопрос(2)

Ваш ответ на вопрос