2015-06-30 1 views
0

Я использую NSNotificationCenter для двух разных ViewControllers. Первый вызов NSNotificationCenter работает хорошо, и после этого я удаляю наблюдателя. Но если я запустил его снова, поток сломается даже после удаления наблюдателя.NSNotificationCenter Разрыв нитей при втором вызове даже после его удаления

в ViewController1:

[[NSNotificationCenter defaultCenter] postNotificationName:@"textUpdateNotification" object: nil ]; 

в ViewController2:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"textUpdateNotification" object:nil]; 

-(void)receiveNotification:(NSNotification *)notificaton 
{ 
.... 
.... 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"textUpdateNotification" object:nil]; 
} 

Я попытался с удалением наблюдателя в - (void)dealloc есть также то же самое происходит. enter image description here

+0

сообщение в StackTrace. – Droppy

+0

notificationcenter не работает в que, нам нужно удалить наблюдателя –

+1

Эта функция stacktrace не имеет никакого отношения к вашему вопросу ... – Droppy

ответ

1

Извините за мою опечатку, Я извлекая наблюдатель в источнике ViewController, где я запуская NSNotification, я должен удалить его из второго ViewController где его существо используемый.

в ViewController1:

[[NSNotificationCenter defaultCenter] postNotificationName:@"textUpdateNotification" object: nil ]; 

в ViewController2:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"textUpdateNotification" object:nil]; 

    -(void)receiveNotification:(NSNotification *)notificaton 
    { 
    .... 
    .... 
     [[NSNotificationCenter defaultCenter] removeObserver:self name:@"textUpdateNotification" object:nil]; 
    } 

- (void)dealloc 
{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"textUpdateNotification" object:nil]; 
} 

Спасибо за каждый один

1

Попробуйте удалить наблюдатель в viewDidDisappear

-(void)viewDidDisappear:(BOOL)animated 
{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"textUpdateNotification" object:nil]; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^