Est-il possible d'utiliser -removeObserver:
d'abord et ensuite appeler -addObserver:
avec le même nom ? Ou est-ce une règle d'avoir -addObserver:
d'abord avant -removeObserver:
?
Je l'ai essayé en utilisant l'OS 4.0 et cela semble correct (pas de crash, d'avertissements... etc.).
-(void) setObserver
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:OBSERVER_NAME object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector: @selector(selectorName)
name:OBSERVER_NAME
object:nil];
}
La raison est d'éviter que deux observateurs avec la même selectorName
qui est appelée deux fois en supposant que -setObserver
a été appelée à nouveau si son intérieur -viewDidLoad
et un avertissement de mémoire a été émis.
Aussi, dois-je invoquer -removeObserver:
pendant -dealloc
?