Вопрос проверяет глубокое понимание работы ARC и модели владения объектами в Swift.
Короткий ответ
deinit вызывается только тогда, когда ARC считает объект больше никому не нужным. Это происходит, когда количество сильных ссылок становится равным нулю. Пока существует хотя бы одна сильная ссылка, объект считается используемым. Слабые и unowned ссылки не удерживают объект. Это фундаментальное правило управления памятью в Swift.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.