2009-04-11 7 views
0

Comment l'héritage des observateurs NSNotificationCenter fonctionne-t-il? J'ai une classe parente que plusieurs autres classes finissent par sous-classer. La classe parente s'enregistre en tant qu'observateur pour une notification spécifique. J'avais l'impression que les enfants seraient également enregistrés en tant qu'observateurs tant que vous invoquiez la super méthode d'enregistrement. Je l'ai mis dans viewDidLoad. Dois-je réenregistrer les classes enfant, y a-t-il aussi des observateurs et ré-implémenter leurs méthodes de délégué?Héritage et gestion de NSNotificationCenter

Répondre

1

Chaque instance qui appelle -[super viewDidLoad] doit recevoir les notifications. Vous n'auriez pas besoin de surcharger la méthode de gestion des notifications car l'implémentation de la superclasse sera appelée. Bien sûr, si ce n'est pas suffisant dans la sous-classe, vous devrez fournir une dérogation.

4

Vous enregistrez objets, et non classes, avec centres de notification. Lorsque vous vous enregistrez pour une notification, la méthode de rappel que vous enregistrez est appelée sur l'objet qui s'enregistre et si vous l'avez substituée dans une sous-classe, la méthode substituée est appelée.

Si vous faites cela dans une sous-classe, demandez-vous si le code du parent à enregistrer pour la notification est appelé dans la sous-classe.

Ceci est au cœur de la programmation orientée objet et de l'héritage.

+0

Je suppose que vous _could_ enregistrer un cours avec un centre de notification, mais ce serait un peu effrayant ... –