TIMCommonMediator.m 962 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // TIMCommonMediator.m
  3. // TUIEmojiPlugin
  4. //
  5. // Created by cologne on 2023/11/14.
  6. // Copyright © 2023 Tencent. All rights reserved.
  7. //
  8. #import "TIMCommonMediator.h"
  9. @interface TIMCommonMediator()
  10. @property (nonatomic, strong) NSMutableDictionary *map;
  11. @end
  12. @implementation TIMCommonMediator
  13. + (instancetype)share {
  14. static TIMCommonMediator *mediator = nil;
  15. static dispatch_once_t onceToken;
  16. dispatch_once(&onceToken, ^{
  17. mediator = [TIMCommonMediator new];
  18. mediator.map = [NSMutableDictionary new];
  19. });
  20. return mediator;
  21. }
  22. - (void)registerService:(Protocol *)service class:(Class)cls {
  23. if (!service || !cls) return;
  24. self.map[NSStringFromProtocol(service)] = cls;
  25. }
  26. - (id)getObject:(Protocol *)service {
  27. if (!service) return nil;
  28. Class cls = self.map[NSStringFromProtocol(service)];
  29. id obj = [cls new];
  30. if ([obj conformsToProtocol:service]) {
  31. return obj;
  32. }
  33. return nil;
  34. }
  35. @end