В 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
Необходимо объявить [weak self] в UIView.animate(withDuration:) ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение