RxEventHub
是 RxSwift
世界的消息中心,它使得多播事件变得容易、类型安全且无错误,其意图在大多数情况下替换使用 NSNotificationCenter
。
为了使得多播事件类型安全且无错误,这个库提供了一个泛型的 RxEventProvider
。对于您希望发送和观察的每种事件类型,您只需创建 RxEventProvider
的一个子类,如下所示
class ExampleIntEventProvider: RxEventProvider<Int>{}
此类用于提供类型信息和事件名称。您可以通过重写 typeKey
方法来提供自定义事件名称。
您可以通过写下以下类似的一行代码来向中心通知事件发生:
RxEventHub.sharedHub.notify(ExampleIntEventProvider(), data: 2)
您可以通过简单地写下以下类似的一行代码来在事件发生时获取 Observable
(本例中为 Observable
):
RxEventHub.sharedHub.eventObservable(ExampleIntEventProvider())
另外一件事是,您可以使用默认中心 RxEventHub.sharedHub
,也可以根据需要为不同的模块创建不同的中心。
RxEventHub 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile:
pod "RxEventHub"
只需将 RxEventHub.swift
复制到您的项目中,即可开始使用。
RxEventHub 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。