MJDictionaryCache.m 869 B

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // MJDictionaryCache.m
  3. // MJExtensionExample
  4. //
  5. // Created by MJ Lee on 15/8/22.
  6. // Copyright (c) 2015年 小码哥. All rights reserved.
  7. //
  8. #import "MJDictionaryCache.h"
  9. #import <objc/runtime.h>
  10. @implementation MJDictionaryCache
  11. + (id)setObject:(id)object forKey:(id<NSCopying>)key forDictId:(const void *)dictId
  12. {
  13. // 获得字典
  14. NSMutableDictionary *dict = [self dictWithDictId:dictId];
  15. if (dict == nil) {
  16. dict = [NSMutableDictionary dictionary];
  17. objc_setAssociatedObject(self, dictId, dict, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  18. }
  19. // 存储数据
  20. dict[key] = object;
  21. return dict;
  22. }
  23. + (id)objectForKey:(id<NSCopying>)key forDictId:(const void *)dictId
  24. {
  25. return [self dictWithDictId:dictId][key];
  26. }
  27. + (id)dictWithDictId:(const void *)dictId
  28. {
  29. return objc_getAssociatedObject(self, dictId);
  30. }
  31. @end