Вопрос проверяет понимание механизма подписки и жизненного цикла наблюдателей.
Observer подписывается на события, передавая себя Observable или регистрируя обработчик. Это может быть добавление в список подписчиков, установка замыкания или регистрация в NotificationCenter. После подписки Observer начинает получать уведомления при изменениях. Важно корректно управлять временем жизни подписки. Неправильная подписка может привести к утечкам памяти.
Механизм подписки зависит от выбранной реализации Observer.
Observer передаёт себя источнику:
observable.add(observer: self)
При этом важно:
использовать weak ссылки
отписываться при деинициализации
Observer передаёт функцию обратного вызова:
observable.onChange = { value in
// обработка события
}
NotificationCenter.default.addObserver(
self,
selector: #selector(handle),
name: .event,
object: nil
)
Подписка — это момент связывания Observer и Observable. Важно не только подписаться, но и корректно управлять отпиской.