2011-11-02 2 views

Répondre

5

Faites attention depuis Pharo 2.0, il est maintenant un SystemAnnouncer qui émet des annonces. Il n'y a plus SystemChangeNotifier.

est le moyen d'accès. Ensuite, regardez dans le package System-Annonces

Vous pouvez vous inscrire à l'aide

SystemAnnouncer uniqueInstance on: ClassRenamed do: [ doSomething ] 

ou

SystemAnnouncer uniqueInstance on: ClassRenamed send: #foo to: anObject 

Vous pouvez vous désabonner en

SystemAnnouncer uniqueInstanceunsubscribe: anObject 
4

SystemChangeNotifier uniqueInstance est l'objet qui gère les événements de changement de système (auquel appartiennent les changements de code et de variables). Jetez un oeil sur les références à SystemChangeNotifier pour trouver de nombreux exemples d'utilisateurs.

Par exemple, pour être informé de tous les changements (autres méthodes d'enregistrement sont disponibles que seul registre pour un sous-ensemble de modifications):

SystemChangeNotifier uniqueInstance 
    notify: self ofAllSystemChangesUsing: #systemEvent: 

La méthode systemEvent: est désormais appelé avec les instances des sous-classes de AbstractEvent représentant tous les changements.

Pour se débarrasser des autres notifications Execute:

SystemChangeNotifier uniqueInstance 
    noMoreNotificationsFor: self 
+0

Il marchait bien! mais je pense que je devrais "m'abonner" à certains événements particuliers, par exemple, des changements seulement faits à une classe spécifique. cela peut-il être fait? De toute façon, je peux continuer à travailler maintenant, mais je n'aime pas faire des changements inutiles pour chaque modification que je fais à n'importe quelle classe. – Illiax

+0

Notez que la solution ci-dessus fait référence à Pharo 1.3 et plus tôt. –

Questions connexes