是否可以监听类在更改时抛出的事件?我需要知道某些类(代码,变量等)在系统浏览器中的某些类中发生了什么变化。
答案 0 :(得分:5)
从Pharo 2.0开始注意,现在有一个发布公告的SystemAnnouncer。再也没有SystemChangeNotifier了。
SystemAnnouncer uniqueInstance
是访问它的方式。然后查看System-Announcements包
您可以使用
进行注册SystemAnnouncer uniqueInstance on: ClassRenamed do: [ doSomething ]
或
SystemAnnouncer uniqueInstance on: ClassRenamed send: #foo to: anObject
您可以使用
取消订阅SystemAnnouncer uniqueInstanceunsubscribe: anObject
答案 1 :(得分:4)
SystemChangeNotifier uniqueInstance
是管理系统更改事件的对象(代码和变量所属的对象)。查看对SystemChangeNotifier
的引用以查找许多示例用户。
例如,要收到有关所有更改的通知(其他注册方法仅可注册更改子集):
SystemChangeNotifier uniqueInstance
notify: self ofAllSystemChangesUsing: #systemEvent:
方法systemEvent:
从现在开始调用,AbstractEvent
的子类实例代表所有更改。
要删除进一步的通知执行:
SystemChangeNotifier uniqueInstance
noMoreNotificationsFor: self