Считается ли willset и didset замыканиями в Swift?
Я понимаю цель willset
а также didset
Я не уверен, что они считаются закрытиями.
Если бы они были замыканиями, не должен ли следующий код создать сильный ссылочный цикл?
var myProperty : Int = 0 {
didSet { self.callMyMethod() }
}
1 ответ
Решение
Нет, они не замыкания. Вы можете думать об этом как о особом типе функции, которая не доступна напрямую; он будет вызываться только при изменении свойства. (Функция названа myapp.MyStruct.myProperty.didset
; Вы можете увидеть это в отладчике.)