Вопрос проверяет понимание жизненного цикла, утечек памяти и того, почему “один раз подписался” часто ломает поведение при повторных показах экрана и интерактивных переходах.
Короткий ответ
viewDidLoad вызывается обычно один раз, но экран может появляться и исчезать много раз. Если подписаться в viewDidLoad, события будут приходить даже когда экран не виден, а отписка “в другом месте” легко забудется или не отработает в edge-кейсах. Это приводит к утечкам, дублям обработчиков и багам с состоянием. Подписки обычно привязывают к viewWillAppear/viewDidDisappear или к более явному жизненному циклу объекта.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.