Swift: как изменить значение свойства без вызова его функции didSet
Как вы можете установить значение свойства в Swift, не вызывая егоdidSet()
функция вне контекста инициализации? Код ниже был неудачным экспериментом для достижения этого в классахnoside()
функция
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)")
}
}
Это довольно просто сделать в Objective-C с автоматически синтезированными свойствами:
С побочным эффектом (если присутствует в сеттере):
self.hoodwink = newValue;
Без побочных эффектов:
_hoodwink = newValue;