Swift: como alterar o valor de uma propriedade sem chamar sua função didSet
Como você pode definir o valor de uma propriedade no Swift, sem chamar seudidSet()
funcionar fora de um contexto de inicialização? O código abaixo foi um experimento fracassado para conseguir isso dentro das classesnoside()
função
class Test
{
var toggle : Bool = 0
var hoodwink : Int = 0 {
didSet(hoodwink)
{
toggle = !toggle
}
}
// failed attempt to set without a side effect
func noside(newValue : Int)
{
hoodwink = newValue
println("hoodwink: \(hoodwink) state: \(toggle)")
}
func withside(newValue : Int)
{
self.hoodwink = newValue
println("hoodwink: \(hoodwink) state: \(toggle)")
}
}
É bastante trivial fazer no Objective-C com propriedades auto-sintetizadas:
Com efeito colateral (se presente no incubador):
self.hoodwink = newValue;
Sem efeito colateral:
_hoodwink = newValue;