Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про IOS: ownership, weak, reference

Какое звено должно хранить слабую ссылку и почему?

Вопрос проверяет понимание владения объектами и ответственности компонентов в архитектуре VIPER.

Короткий ответ

Слабую ссылку должен хранить компонент, который не владеет другим объектом логически. В VIPER это обычно Presenter по отношению к View. View — основной владелец экрана. Presenter лишь обслуживает его. Поэтому Presenter хранит weak ссылку на View.

Длинный ответ

Чтобы правильно выбрать weak ссылку, нужно понимать владение объектами.

Принцип владения

Сильную ссылку хранит тот, кто:

  • отвечает за жизненный цикл объекта

  • логически владеет им

Слабую ссылку хранит тот, кто:

  • использует объект

  • но не управляет его жизнью

Применение в VIPER

Типичное распределение:

  1. View → Presenter (strong)

  2. Presenter → View (weak)

  3. Presenter → Interactor (strong)

  4. Presenter → Router (strong или weak, по ситуации)

Почему Presenter → View — weak

Presenter:

  • не создаёт View

  • не управляет её уничтожением

  • не должен удерживать UI

UIKit решает, когда View исчезает.

Ошибочный подход

Если View хранить как strong:

  • экран не освобождается

  • deinit не вызывается

  • возникает утечка памяти

Практическое правило

Если сомневаешься:

  • задай вопрос: «Кто должен жить дольше?»

  • более долгоживущий объект не должен удерживаться

Вывод

Слабая ссылка всегда должна находиться у того компонента, который не владеет другим логически. В VIPER это почти всегда Presenter по отношению к View.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • IOS

    IOS

Ключевые слова

#ownership

#weak

#reference

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.