Следует ли удалять уведомление с помощью self в iOS?
Товарищ по команде зарегистрировал уведомление в viewWillAppear
и удалил в viewDidDisappear
как,
override func viewWillAppear(_ animated: Bool) {
NotificationCenter.default.addObserver(self, selector: #selector(onDidReceiveData(_:)), name: .didReceiveData, object: API.shared)
}
override func viewDidDisappear(_ animated: Bool) {
NotificationCenter.default.removeObserver(self)
}
При просмотре я прокомментировал и предложил удалить уведомление с явным именем вместо удаления с self
, потому что, я думаю, в будущем могут потребоваться другие уведомления для регистрации в viewWillLoad который не должен быть затронут звонком NotificationCenter.default.removeObserver(self)
случайно или ошибкой разработчиков. Мое предложение состояло в том, чтобы удалить наблюдателя с помощью
override func viewDidDisappear(_ animated: Bool) {
NotificationCenter.default.removeObserver(self, name:.didReceiveData, object: nil)
}
Товарищи по команде ответили, что удаление с NotificationCenter.default.removeObserver(self)
совершенно нормально, потому что мы не регистрируем другие уведомления на данный момент. Я искал ссылку или руководство, чтобы убедить его, почему важно удалить уведомление, явно используя имя, а не self
.
Есть ли какое-либо руководство от Apple относительно наилучшей практики удаления наблюдателей за уведомлением?