notification
bofy
Membre
Bonjour
C'est sans doute idiot, mais...
Je voudrais poster une notification "toto" vers des objets qui n'existent pas encore.
En créant ces objets je les déclare observateurs de la notification "toto".
Ca ne marche pas.
En programmation impérative ça ne me choque pas, mais en programmation objet ça me surprend.
D'autant que la doc précise que poster une notification n'impose pas de connaà®tre le destinataire.
Il y a sûrement un truc, mais je n'ai pas trouvé.
Ou bien est-ce impossible ?
Merci
C'est sans doute idiot, mais...
Je voudrais poster une notification "toto" vers des objets qui n'existent pas encore.
En créant ces objets je les déclare observateurs de la notification "toto".
Ca ne marche pas.
En programmation impérative ça ne me choque pas, mais en programmation objet ça me surprend.
D'autant que la doc précise que poster une notification n'impose pas de connaà®tre le destinataire.
Il y a sûrement un truc, mais je n'ai pas trouvé.
Ou bien est-ce impossible ?
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
• le notificationCenter cherche si il y a des observateurs pour cette notification (via l'identificateur),
• et l'envoient aux inscrits. Si il n'y en a pas, il n'envoie rien.
• Enfin, il supprime la notification de la pile.
Donc si ton objet "toto" n'est pas créé lors de l'envoi de la notification, il ne recevra pas son courrier "poste restante"
Tout à fait c'est le notificationCenter qui tient à jour une liste des "inscrits" aux notifications de tel identificateur
Comme évoqué par Philippe, sous cocoa, on n'envoie pas de notification à des objets (qu'ils existent ou non) mais au NSNotificationCenter.
C'est lui qui va redistribuer les notifs aux objets qui s'y sont inscrits (les observers).
Donc dès que ton objet est créé, il s'inscrit au NSNotificationCenter (addObserver...) : il pourra recevoir les notifs.
Par contre, si ton objet est détruit, ne pas oublier de l'enlever du NSNotificationCenter (un removeObserver... dans la méthode dealloc est idéal pour ça) sous peine de plantage !
Donc, mon objet dès qu'il sera créé enverra une notification pour dire qu'on peut lui envoyer une notification... Et ça marche !
Merci