L'ajout d'un observateur augmente-t-il le nombre de rétentions d'un objet? Si oui, ARC prend-il également en charge le retrait de cet observateur? Sinon, où dois-je retirer l'observateur?
Vous devez supprimer explicitement l'observateur même si vous utilisez ARC
. Créez une méthode dealloc
et supprimez-la.
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
Si vous voyez la méthode que vous n'avez pas besoin d'appeler [super dealloc];
ici, seule la méthode sans super dealloc est nécessaire.
MISE À JOUR pour Swift
Vous pouvez supprimer l'observateur dans la méthode deinit si vous écrivez du code dans Swift.
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}