> Что такое сильные и слабые ссылки в iOS? (iOS, Swift)

Уровень: junior · Роль: mobile · Категория: Технические вопросы

Компании: Wildberries, VK, Masterdata

Стек: iOS, Swift

> Пример ответа

В iOS (Swift) ссылки делятся на сильные (strong) и слабые (weak), а также неowned (бесхозные). Сильная ссылка - это ссылка по умолчанию: она увеличивает счетчик ссылок (reference count) объекта, удерживая его в памяти до тех пор, пока хотя бы одна сильная ссылка существует. Слабая ссылка (weak) не увеличивает счетчик и автоматически становится nil, когда объект освобождается. Это позволяет избежать циклических зависимостей (retain cycles), особенно в замыканиях и делегатах. Например, при объявлении свойства делегата: weak var delegate: MyDelegate?. Неowned ссылка также не увеличивает счетчик, но предполагает, что объект будет существовать в течение всего времени жизни ссылающегося объекта, и не обнуляется при освобождении (может привести к крашу при обращении к освобожденному объекту). Выбор между weak и неowned зависит от времени жизни: weak - если объект может быть освобожден раньше, неowned - если гарантированно существует дольше.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью