提交
This commit is contained in:
41
TUIKit/TIMCommon/CommonModel/TIMCommonMediator.m
Normal file
41
TUIKit/TIMCommon/CommonModel/TIMCommonMediator.m
Normal file
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// TIMCommonMediator.m
|
||||
// TUIEmojiPlugin
|
||||
//
|
||||
// Created by cologne on 2023/11/14.
|
||||
// Copyright © 2023 Tencent. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TIMCommonMediator.h"
|
||||
|
||||
@interface TIMCommonMediator()
|
||||
@property (nonatomic, strong) NSMutableDictionary *map;
|
||||
@end
|
||||
|
||||
@implementation TIMCommonMediator
|
||||
|
||||
+ (instancetype)share {
|
||||
static TIMCommonMediator *mediator = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
mediator = [TIMCommonMediator new];
|
||||
mediator.map = [NSMutableDictionary new];
|
||||
});
|
||||
return mediator;
|
||||
}
|
||||
|
||||
- (void)registerService:(Protocol *)service class:(Class)cls {
|
||||
if (!service || !cls) return;
|
||||
self.map[NSStringFromProtocol(service)] = cls;
|
||||
}
|
||||
|
||||
- (id)getObject:(Protocol *)service {
|
||||
if (!service) return nil;
|
||||
Class cls = self.map[NSStringFromProtocol(service)];
|
||||
id obj = [cls new];
|
||||
if ([obj conformsToProtocol:service]) {
|
||||
return obj;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
@end
|
||||
Reference in New Issue
Block a user