iOS Ajouter un observateur


Exemple

Convention de nommage

Les notifications sont identifiées par des objets NSString globaux dont les noms sont composés de cette manière:

Name of associated class + Did | Will + UniquePartOfName + Notification

Par exemple:

  • NSApplicationDidBecomeActiveNotification
  • NSWindowDidMiniaturizeNotification
  • NSTextViewDidChangeSelectionNotification
  • NSColorPanelColorDidChangeNotification

Swift 2.3

NSNotificationCenter.defaultCenter().addObserver(self, 
                                                 selector: #selector(self.testNotification(_:)), 
                                                 name: "TestNotification", 
                                                 object: nil)

Swift 3

NSNotificationCenter.default.addObserver(self, 
                                         selector: #selector(self.testNotification(_:)), 
                                         name: NSNotification.Name(rawValue: "TestNotification"), 
                                         object: nil)

Objectif c

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

PS: Il est également intéressant de noter que le nombre de fois qu'un observateur a été ajouté doit être exactement le nombre de fois que l'observateur est supprimé. Une erreur de débutant consiste à ajouter un observateur dans viewWillAppear: d'un UIViewController, mais supprimer l'observateur dans viewDidUnload: entraînera un nombre irrégulier de poussées et donc une fuite de l'observateur et le rappel du sélecteur de notification de manière superflue.