iOS事件总线,支持AppDelegate解耦,支持基于响应链的局部总线
QTEventBus是一个优雅的iOS事件总线,用来实现“发布-订阅”的消息通信模式。
NSNotification
文章:
消息总线:
pod QTEventBus
AppDelegate解耦:
pod QTEventBus/AppModule
基于响应链的事件传递:
pod QTEventBus/UIKit
QTEvent
@interface QTLoginEvent : NSObject<QTEvent>
@property (copy, nonatomic) NSString * userId; //可以携带任意数据
@property (copy, nonatomic) NSString * userName; //可以携带任意数据
@end
QTSub(object,className)宏的作用是在object的生命周期内,订阅className事件,当object释放的时候自动取消订阅。
//注意eventBus会持有这个block,需要弱引用object
[QTSub(self,QTLoginEvent) next:^(QTLoginEvent * event) {
NSLog(@"%ld",event.userId);
}];
如果需要在主线程订阅,使用宏QTSubMain
QTLoginEvent * event;
[QTEventBus.shared dispatch:event];
QTEventBus使用 MIT 许可证,详情见 LICENSE 文件。