SugarBus
- 快速
- 异步
- 线程安全
- 类型安全
SugarBus 三步走
使用任何类型定义事件
struct DemoEvent: Event{
//Any property you want
}
订阅事件
DemoEvent.addSubscriber().next { (event) in }
发布事件
DemoEvent().publish()
依赖
- iOS 8
- Swift 4
安装
pod SugarBus
功能
线程
默认情况下,所有回调处理程序都在主线程上调用,如果您想在其他线程上接收它
Event.addSubscriber().at(queue:yourqueue).next { (event) in }
生命周期跟踪器
通常,当对象被解除引用时,您想要取消订阅事件。您可以使用 attach(to:)
来实现。
//When self is dealloced, disposed() is called
Event.addSubscriber().attach(to:self).next { (event) in }
如果您希望手动处理销毁
let token = Event.addSubscriber().next { (event) in }
token.dispose()
事件ID
有时,您可能只对事件的特定ID感兴趣。
1. 提供事件ID
struct DownloadEvent: Event{
var eventId: String{
return itemId
}
let itemId: String
}
2. 使用 only
订阅
DownloadEvent.addSubscriber()
.attach(to:self)
.only(id:"12345")
.next{ (event) in
}
发布
DownloadEvent(itemId:"12345").publish()
作者
Leo, [email protected]
许可
SugarBus 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。