EventBus
是一个轻量级、基于协议的事件总线框架,适用于 Swift。它允许应用程序组件之间的通信,而无需组件直接引用彼此,从而有助于减少耦合并增强模块化。
- 解耦合通信:允许组件之间通过直接引用进行通信。
- 类型安全:使用 Swift 的强类型确保事件得到适当处理。
- 异步选项:支持在不同队列上调度事件。
- 生命周期管理:使用
EventLifeCycleTracker
自动管理订阅。
要使用 Swift 包管理器将 EventBus
集成到 Swift 项目中,请将以下内容添加到 Package.swift
dependencies: [
.package(url: "https://github.com/dadameng/EventBus", .upToNextMajor(from: "1.0.0"))
]
要使用 CocoaPods 将 EventBus
集成到 Xcode 项目中,请在 Podfile
中指定它
pod 'EventBus', '~> 1.0'
请确保将 1.0
替换为 EventBus
的最新版本。
通过实现 Event
协议创建自定义事件
class CustomEvent: NSObject, Event {
static func eventClass() -> AnyClass {
return CustomEvent.self
}
func subtypeOfEvent() -> String? {
return "SomeSubtype"
}
}
在需要监听事件的任何地方订阅事件
let subscriber = NSObject()
subscriber.subscribe(to: CustomEvent.self).next { event in
print("Received an event: \(event)")
}
向所有订阅者发送事件
let event = CustomEvent()
EventBus.shared.dispatchOnMain(event)
EventBus 在 MIT 许可证下发布。