Ну вообще имеет смысл. Но в этом конкретном моменте конечно тоже. Если бы вы просто вызывали только этот кложур, то можно было и стронгово. А так как этот кложур создаётся в памяти не тогда, когда доходит до его вызова, а уже в момент запуска бэкграунд процесса, то первый guard let self всегда будет успешен, так как вторая кложура заликает селф.
Ну то есть технически это может и не страшно, что заликает, но тогда нет смысла виково капчурить вообще. Зависит от ситуации, когда-то такой лик может доставить лишних проблем.
В DispatchQeue.something.sync/async счётчик ссылок не увеличивается от захвата переменных, если я не прав то поправьте плиз. Системные кложуры как-то сами этот момент разруливают. Может и увеличивается счётчик ссылок, но память потом высвобождается.
нет никаких системных кложур, они едины и работают везде одинаково)
Тем не менее например в UIView.animate селфа можно не захватывать слабо, и лика не будет.
Так кложуры и не ретэйнят, это ж на стэке происходит) ретэйнят те функции которые внутри кложур присваивают селф куда либо, или и тд
Потому что анимация отработает в самом ближайшем будущем.
Поставь 15 секунд и закрой экран
15 секунд делей или 15 секунд длительность?
Ну так речь и идёт о кложуре в котором что-то делают с селфом
https://medium.com/flawless-app-stories/you-dont-always-need-weak-self-a778bec505ef
Обсуждают сегодня