CTMediator实现原理

概述

基本构成:Target_XX、CTMediator、CTMediator_XX分类,XX为模块名称,可以用static字符串来保存

CTMediator接口分析

+ (instancetype _Nonnull)sharedInstance;

// 远程App调用入口
- (id _Nullable)performActionWithUrl:(NSURL * _Nullable)url completion:(void(^_Nullable)(NSDictionary * _Nullable info))completion;
// 本地组件调用入口
- (id _Nullable )performTarget:(NSString * _Nullable)targetName action:(NSString * _Nullable)actionName params:(NSDictionary * _Nullable)params shouldCacheTarget:(BOOL)shouldCacheTarget;
- (void)releaseCachedTargetWithTargetName:(NSString *_Nullable)targetName;

调用流程

1.添加XX模块的的CTMediator分类,定义接口,接口内部通过运行时动态生成target的实例,采用performSelector的方式动态调用target对应的action,如果不存在则调用target的notFound方法,如果还没找到则使用默认的noTarget 方法,防止崩溃。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容