Swift: cómo cambiar el valor de una propiedad sin llamar a su función didSet
¿Cómo se puede establecer el valor de una propiedad en Swift, sin llamar a sudidSet()
funciona fuera de un contexto de inicialización? El siguiente código fue un experimento fallido para lograr esto dentro de las clases 'noside()
función
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)")
}
}
Es bastante trivial hacerlo en Objective-C con propiedades auto-sintetizadas:
Con efecto secundario (si está presente en la incubadora):
self.hoodwink = newValue;
Sin efecto secundario:
_hoodwink = newValue;