持续集成iOS-Developer-OC

iOS开发之一款轻量级的EventBus

2018-03-30  本文已影响484人  PanPan1127

IMXEventBus

#功能列表:

#如何使用:

1.)导入:

  1. Cocoapods:pod 'IMXEventBus', '~> 1.0.0'

  2. 手动导入:本库无依赖其它三方库,直接将IMXEventBus文件夹拖入项目即可。

    Github地址:https://github.com/PanZhow/IMXEventBus

2.)头文件引入:

#import "IMXEventBusKit.h"

3.)功能使用:

1. 注册:
  1. 简略模式:

      //默认值:
      //优先级:Default;回调执行:非主线程
      [IMXEventSubscriber addTarget:self name:@"login_eventName"     action:^(IMXEventUserInfo *info) {
        NSLog(@"callback info:%@    thread:%@",[info description],[NSThread currentThread]);
      }];
    
  2. 全参模式:

    [IMXEventSubscriber addTarget:self name:@"login_eventName" priority:IMXEventSubscriberPriorityDefault inMainTread:YES action:^(IMXEventUserInfo *info) {
        NSLog(@"callback info:%@    thread:%@",[info description],[NSThread currentThread]);
    }];
    
    
2. 触发事件:
  1. 简略模式:

        //默认值:
        //被触发的事件:不强制在主线程中执行回调
        [IMXEventPoster postEventName:@"login_eventName"    object:@{@"userName":@"demo"}];
    
    
  2. 全参模式:

    [IMXEventPoster postEventName:@"login_eventName" object:nil forceMain:YES];
    
3. Debug:
  1. 功能汇总(仅在Debug模式下,log处理):

    1. 重复添加target对应的同一事件时,会打印或者弹出log提示。

    2. post时,无对应的监听者存在,会打印或者弹出log提示。

      1. Debug模式下:输出所有Event信息。(便于检测当前无订阅者的僵尸事件以及未被触发的事件)

      注:仅输出之前的Event调用情况,无法检测输出之后的log,故输出的数目不代表最终数据。

  2. 开启Debug功能:默认不开启。

    
    [IMXEventDebug_share enableDebug:YES];
    IMXEventDebug_share.debugType = IMXEventDebugTypeAlert;
    
    

#要点及图谱:

图谱1:类图结构

IMXEventBus类图.png

图谱2:事件注册流程图

IMXEventBus注册监听.png

图谱3:事件触发流程图

IMXEventBus触发.png

#结构描述:

一、数据:

1. IMXEventSubscribModel:订阅者对象
2. IMXEventUserInfo:poster传输数据

二、逻辑处理:

1. IMXEvent:事件
2. IMXEventBus:单例模式,事件集合。

三、public文件:

1. IMXEventSubscriber:注册订阅者

主要是针对IMXEventBus注册接口的封装。如将优先级是否主线程执行回调统一置常用值为默认值。

2. IMXEventPoster:post触发事件

主要是针对IMXEventBus发布接口的封装。将是否主线程执行回调统一置常用值为默认值。

#待完善:

  1. Target子类化对象中与Target本身存在有同名事件处理问题(过滤去重功能)。
  2. 延时触发事件。
  3. 条件触发。
  4. 其它

#参考:

#更新Pods开源库

  1. 提交code至github,或改version或保持不变(更改版本时不需要第3步骤)。
  2. pod trunk register email@XX.com '<name>' --description='<description>'
  3. pod trunk delete IMXEventBus 1.0.0
  4. pod trunk push --allow-warnings
  5. 使用时:pod setup更新

参考链接:https://www.jianshu.com/p/d6beddcce8bb

更多

IT互联网自习室.jpg
上一篇 下一篇

猜你喜欢

热点阅读