Считается ли willset и didset замыканиями в Swift?

Я понимаю цель willset а также didset Я не уверен, что они считаются закрытиями.

Если бы они были замыканиями, не должен ли следующий код создать сильный ссылочный цикл?

var myProperty : Int = 0 {
    didSet { self.callMyMethod() }
}

1 ответ

Решение

Нет, они не замыкания. Вы можете думать об этом как о особом типе функции, которая не доступна напрямую; он будет вызываться только при изменении свойства. (Функция названа myapp.MyStruct.myProperty.didset; Вы можете увидеть это в отладчике.)

Другие вопросы по тегам