Schnell: So ändern Sie den Wert einer Eigenschaft, ohne die didSet-Funktion aufzurufen
Wie können Sie den Wert einer Eigenschaft in Swift festlegen, ohne sie aufzurufen?didSet()
Funktion außerhalb eines Initialisierungskontexts? Der folgende Code war ein fehlgeschlagenes Experiment, um dies innerhalb der Klassen zu erreichen.noside()
Funktion
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)")
}
}
In Objective-C mit automatisch synthetisierten Eigenschaften ist das ziemlich trivial:
Mit Nebenwirkung (falls im Setter vorhanden):
self.hoodwink = newValue;
Ohne Nebenwirkung:
_hoodwink = newValue;