Выбор ответа Junior ARC и циклы ссылок спрашивают часто обновлено

Когда ARC освобождает объект

Вопрос

Когда ARC освобождает экземпляр класса?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Когда счётчик сильных ссылок на него станет равен нулю. ARC (Automatic Reference Counting) вставляет retain и release на этапе компиляции.

Варианты ответа

  1. Когда сборщик мусора найдёт его недостижимым
  2. Когда счётчик сильных ссылок на него станет равен нулюправильный ответ
  3. При уходе приложения в фон или нехватке памяти
  4. Когда счётчик слабых ссылок станет равен нулю

Разбор

ARC (Automatic Reference Counting) вставляет retain и release на этапе компиляции. Как только сильных ссылок не осталось, вызывается deinit и объект уничтожается. Это детерминированно, без пауз, но, в отличие от трассирующего сборщика мусора, ARC не видит недостижимые циклы. Слабые ссылки объект не удерживают, их счётчик на момент освобождения не влияет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.