手写一个iOS事件总线

1、什么是事件总线

事件总线是一个基于NSNotification的发布/订阅框架。

2、实现目标

arch.png (1)订阅某个Notification事件,监控通知的发送; (2)当监听对象从内存中销毁(dealloc)的时候,自动移除监听

3、使用

现已支持cocoapods

pod 'ViaBus'
复制代码

(1)发送广播到总线

[VIABUS publishNotification:@"didlogin" broadcastContent:userInfo];
复制代码

(2)订阅广播

[VIABUS subscribeEventWithEventname:@"didlogin" andTaget:self handler:^(NSString * eventName, id object) {
  NSLog(@"收到通知");
}];
复制代码

(3)手动取消广播

[VIABUS unsubscribeEventWithEventName:@"didlogin" target:self];
复制代码

(4)自动释放

当监听人实例被释放的时候,会自动移除订阅。新的广播发送的时候,不会再被监听。

4、源代码&Demo

github.com/BBC6BAE9/Vi…

猜你喜欢

转载自juejin.im/post/6989498853217009672