概述
基本构成: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
方法,防止崩溃。
网友评论