Необходимо объявить [weak self] в UIView.animate(withDuration:)IOS

Программируем под IOS
Anonymous
Необходимо объявить [weak self] в UIView.animate(withDuration:)

Сообщение Anonymous »

В iOS некоторые контроллеры представлений не освобождаются после их закрытия.

После поиска в Интернете я обнаружил, что делегаты должны быть установлены как «слабые», а в замыканиях следует использовать [weak self] перед доступом к переменной self.
После применения этого решения мой контроллер представления теперь освобождается должным образом после его закрытия.
Я есть вопрос: нужно ли мне использовать [weak self] в блоке анимации?
Я добавил оба фрагмента кода ниже; какой из них мне использовать?
// Without [weak self]
UIView.animate(withDuration: 0.25) {
self.loaderView.alpha = 0
} completion: { isFinish in
self.loaderView.isHidden = true
}

// With [weak self]
UIView.animate(withDuration: 0.25) {[weak self] in
guard let self = self else { return }
self.loaderView.alpha = 0
} completion: { [weak self] isFinish in
guard let self = self else { return }
self.loaderView.isHidden = true
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... thduration

Вернуться в «IOS»