一个 Swift 版本的 EventBus。
已有功能:
- 发布事件
- 订阅/取消订阅事件
- 指定事件处理的队列
- 线程安全
- 使用哈希表保存数据实现 O(1) 的查找性能
未完成功能:
- 事件合并
- 粘性事件
- 保存弱引用
struct XXXEvent: Event {
var info: String
}
EventBus.shared.subscribe(XXXEvent.self, for: self) { [unowned self] event in
// 事件处理代码
}
EventBus.shared.subscribe(XXXEvent.self, for: self, on: .global()) { [unowned self] event in
// 事件处理代码
}
}
deinit {
EventBus.shared.unsubscribe(target: self)
}
EventBus.shared.publish(XXXEvent())