L'ajout d'un observateur augmente-t-il le nombre de retenues d'un objet? Si oui, ARC gère-t-il également le retrait de cet observateur? Sinon, où devrais-je retirer l'observateur?
Réponse
Trop de publicités? Vous devez explicitement supprimer l'observateur même si vous utilisez ARC
. Créez une méthode dealloc
et supprimez-la là.
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
Si vous voyez la méthode, 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 selon la méthode deinit si vous écrivez du code dans swift.
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}