У меня есть основной вопрос относительно удаления наблюдателя.iOS - Использование dealloc для удаления наблюдателя
У меня есть родительский класс ViewController, который наследуется тремя дочерними классами ViewController. например. BookVC -> BookHotelVC, BookFlightVC, BookTrainVC
Здесь я добавил наблюдатель в viewDidLoad
родительского класса (я [super viewDidLoad]
в детских ViewControllers), который уведомляет метод написанный в родительском классе. Мой код-
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(BookingCompleted:) name:@"BookingCompleted" object:nil];
Теперь я хочу, чтобы удалить наблюдателя, когда я отойти от любого из дочерних ViewControllers, но я не могу писать [super dealloc]
в dealloc
каждого ребенка ViewController, поскольку ARC не допускает этого.
Как удалить наблюдателя, который установлен? Потому что всякий раз, когда я перехожу к дочернему ViewController, добавляется новый наблюдатель, который вызывает странные вещи (например, вызов этого метода дважды/трижды ... - вызов предупреждения дважды/трижды ...).
Просьба предложить.
Вы имеете в виду, я должен написать 'dealloc' в самом родительском классе? Если это так, я сделал это в первую очередь, но его не вызывали. – cheeseRoot
@ pRimei5 Вы уверены, что все ссылки на этот объект были освобождены? –