notification

bofybofy Membre
10:29 modifié dans API AppKit #1
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

Réponses

  • Philippe49Philippe49 Membre
    août 2008 modifié #2
    Lors de l'envoi d'une notification,
    • 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"

    dans 1219410488:

    D'autant que la doc précise que poster une notification n'impose pas de connaà®tre le destinataire.

    Tout à  fait c'est le notificationCenter qui tientÂ à  jour une liste des "inscrits" aux notifications de tel identificateur


  • NoNo Membre
    10:29 modifié #3
    dans 1219410488:

    Je voudrais poster une notification "toto" vers des objets qui n'existent pas encore.


    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 !
  • bofybofy Membre
    10:29 modifié #4
    Je n'étais pas sûr d'avoir compris ce que vous m'avez très bien confirmé.

    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
Connectez-vous ou Inscrivez-vous pour répondre.