EventBus Object-C 版本(EventBus 的 Object-C 语言版本)
pod install
EventBus 采用订阅者的策略,接收 Event 事件的类需要注册为订阅者对象并遵守 XEBSubscriber 协议
@interface CHMessageEventCenter ()<XEBSubscriber>
@end
@implementation CHMessageEventCenter{
+ (instancetype)init{
self = [super init];
if (self){
[[XEBEventBus defaultEventBus] registerSubscriber:self];
}
return self;
}
}
* handleableEventClasses 方法需要返回当前订阅者需要接收 Event 类型 * 当接收到 event 事件后会执行 onEvent 方法
- (void)onEvent: (id )event{
// execute code
}
+ (NSArray<Class>*)handleableEventClasses {
return @[[CHEvent class]];
}
CHEvent 是一个自定义的 Event 对象,发送给订阅了该类型的对象,event 中可以传递一些上下文内容
- (void)postEvent{
CHEvent *event = [CHEvent new];
[[XEBEventBus defaultEventBus] postEvent:event];
}