172 похожих чатов

Кто подскажет, есть ли какой-то смысл писать [weak self] во

втором замыкании? Код с сайта raywenderlich. Правильно ли я понимаю, что когда мы пишем guard let self = self, счетчик ссылок на объект увеличивается и self не удалится до конца внешнего замыкания?

12 ответов

8 просмотров

Ну вообще имеет смысл. Но в этом конкретном моменте конечно тоже. Если бы вы просто вызывали только этот кложур, то можно было и стронгово. А так как этот кложур создаётся в памяти не тогда, когда доходит до его вызова, а уже в момент запуска бэкграунд процесса, то первый guard let self всегда будет успешен, так как вторая кложура заликает селф.

Alex Oakley
Ну вообще имеет смысл. Но в этом конкретном момент...

Ну то есть технически это может и не страшно, что заликает, но тогда нет смысла виково капчурить вообще. Зависит от ситуации, когда-то такой лик может доставить лишних проблем.

Alex Oakley
Ну вообще имеет смысл. Но в этом конкретном момент...

В DispatchQeue.something.sync/async счётчик ссылок не увеличивается от захвата переменных, если я не прав то поправьте плиз. Системные кложуры как-то сами этот момент разруливают. Может и увеличивается счётчик ссылок, но память потом высвобождается.

Vladislav C
В DispatchQeue.something.sync/async счётчик ссылок...

нет никаких системных кложур, они едины и работают везде одинаково)

Kei Sidorov
нет никаких системных кложур, они едины и работают...

Тем не менее например в UIView.animate селфа можно не захватывать слабо, и лика не будет.

Vladislav C
В DispatchQeue.something.sync/async счётчик ссылок...

Так кложуры и не ретэйнят, это ж на стэке происходит) ретэйнят те функции которые внутри кложур присваивают селф куда либо, или и тд

Vladislav C
Тем не менее например в UIView.animate селфа можно...

Потому что анимация отработает в самом ближайшем будущем.

Vladislav C
Поставь 15 секунд и закрой экран

15 секунд делей или 15 секунд длительность?

Artëm Balashow
Так кложуры и не ретэйнят, это ж на стэке происход...

Ну так речь и идёт о кложуре в котором что-то делают с селфом

https://medium.com/flawless-app-stories/you-dont-always-need-weak-self-a778bec505ef

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Мне вот любопытно. Уже сколько времени имею соблазн купить макбук, ибо подозреваю что очень уж удобен будет в связке с другой техникой от эпл которая у меня есть, да и сам по ...
Not Yeromin
14
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
Гляньте, че бывает: Сегодня по одному проекту одной вебстудии делал проект небольшой, на их хостинге. На Modx revo. В определенный момент , работая в админке, вдруг перестал р...
Artem
7
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
8
Карта сайта