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

Подскажите плиз по делегатам: мы же НЕ всегда пишем weak

delegate = self? Вот этот вик

3 ответов

27 просмотров

Наверняка найдётся ситуация, когда можно и не weak, но я бы всегда писал, чтобы сильные ссылки не плодить

делегаты всегда нужно писать с weak, потому что это ссылка двух объектов друг на друга без weak ссылка будет сильной и получите retain cycle

Дамир
делегаты всегда нужно писать с weak, потому что эт...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта