NSNotification поднимается несколько раз - PullRequest
10 голосов
/ 02 февраля 2011

Я занимаюсь разработкой программы для чтения электронных книг и столкнулся со следующей проблемой.я использую метод IBAction, чтобы опубликовать NSNotification, который inturn вызывает метод действия после нажатия кнопки.Он работает абсолютно нормально в первый раз ... Метод IBAction должен вызываться каждый раз, когда я нажимаю на кнопку. После выполнения этого действия мне нужно перейти на мою домашнюю страницу, а затем вернуться и снова нажать кнопку.Это где я сталкиваюсь с проблемой.Метод вызывается более одного раза со второго раза, и число только увеличивается. Пожалуйста, помогите мне с этим ....

//IBAction Method
if (sender.tag == PenToolAction) {

    GLogInfo(@"Pen tool tapped");
    [self hideSelf];
    [[NSNotificationCenter defaultCenter] postNotificationName:PenToolActionInitialized object:nil];
}

Ответы [ 2 ]

35 голосов
/ 02 февраля 2011

Если вы добавите наблюдателя уведомлений в метод, вызываемый несколько раз, вы также получите уведомление несколько раз.

Попробуйте вместо этого поставить [[NSNotificationCenter defaultCenter] addObserver:...] в метод init или вызвать [[NSNotificationCenter defaultCenter] removeObserver:self] прямо перед.

1 голос
/ 04 февраля 2011

Спасибо вам большое за вашу поддержку ... Я нашел решение для моего вопроса ... Главный виновник здесь в моем коде - это проблема управления памятью ... Я использовал анализатор x-code для проверки утечек и обнаружил, что я забыл освободить основную переменную ..... Я выпустил переменную, и теперь мой код работает нормально ....

...