EventHub 2.1

EventHub 2.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2018年10月
SPM支持 SPM

Yuki MishimaYuki Mishima 维护。



  • 作者:
  • Yuki Mishima

EventHub

Swift中的类型安全且方便的观察系统。

快速示例

struct MessageEvent: EventType {
    let message: String
}

EventHub.addObserver(self) { (event: MessageEvent) in
    print(event.message) // -> 😜
}
EventHub.post(MessageEvent(message: "😜"))

使用方法

  1. 定义遵循EventType协议的事件
    事件可以是类、结构体或枚举。
enum LoginEvent: EventType {
    case success(id: String)
    case failure(error: ErrorType)
}
  1. 添加观察者和块
    调用addObserver(observer:thread:block:)
  • observer:观察者对象。如果观察者对象被销毁,观察将自动移除,块将不再被调用。
  • thread:可选(默认为nil)。它决定了哪条线程执行块。如果是nil,块将在发布线程上同步执行。
  • block:回调闭包。块接收定义的事件。
EventHub.addObserver(self, thread: .Main) { (event: LoginEvent) in
    switch event {
    case .success(let id):
        print(id)
    case .failure(let error):
        print(error)
    }
}
  1. 发布事件
EventHub.post(LoginEvent.success(id: id))

要求

Swift 3.0

安装

EventHub 通过 CocoaPods 提供。要安装,只需将以下行添加到您的 Podfile:

pod "EventHub"

作者

Yuki Mishima,[email protected]

许可

EventHub 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。