Метод nsnotificationcenter запущен более одного раза - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть viewcontroller. В нем есть наблюдатель уведомлений.я отправляю уведомление от другого viewcontroller. но селектор наблюдателей nsnotification уволят два или иногда три раза.Мой вопрос заключается в том, что, когда я использую [view removeFromSuperview];удалить это представление viewcontrollers, наблюдатель уведомления удален?Я дал этот метод в методе dealloc класса viewcontroller

- (void)dealloc {
    [super dealloc];
    [[NSNotificationCenter defaultCenter] removeObserver:self];

}

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

номер

этот метод будет вызван, когда счетчик просмотра контроллеров станет равным 0

Вы должны добавить другой метод, который будет вызываться при удалении представления из другого viewcontroller, и вызывать

[[NSNotificationCenter defaultCenter] removeObserver:self];

Для вопроса о том, что селектор вызывается несколько раз, мне нужно увидеть больше кода - убедитесь, что строка кода, отправляющая уведомление, не вызывается несколько раз

1 голос
/ 25 ноября 2011

NSNotification зарегистрировано для всего приложения (или даже для всей операционной системы), а не для отдельного представления или viewcontroller. Вам нужно удалить наблюдателя в своем действии, если он больше не будет использоваться. В этом случае вы можете обработать только одно опубликованное уведомление.

...