数栾事件总线 2.1.0

数栾事件总线 2.1.0

dadameng 维护。



  • 作者
  • 作者

EventBus

EventBus 是一个轻量级、基于协议的事件总线框架,适用于 Swift。它允许应用程序组件之间的通信,而无需组件直接引用彼此,从而有助于减少耦合并增强模块化。

功能

  • 解耦合通信:允许组件之间通过直接引用进行通信。
  • 类型安全:使用 Swift 的强类型确保事件得到适当处理。
  • 异步选项:支持在不同队列上调度事件。
  • 生命周期管理:使用 EventLifeCycleTracker 自动管理订阅。

安装

Swift 包管理器

要使用 Swift 包管理器将 EventBus 集成到 Swift 项目中,请将以下内容添加到 Package.swift

dependencies: [
    .package(url: "https://github.com/dadameng/EventBus", .upToNextMajor(from: "1.0.0"))
]

CocoaPods

要使用 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 许可证下发布。