NSDictionary-MutableDeepCopyOfArrays.m
上传用户:jjjjag8
上传日期:2017-04-17
资源大小:1443k
文件大小:1k
源码类别:

iPhone

开发平台:

MultiPlatform

  1. #import "NSDictionary-MutableDeepCopyOfArrays.h"
  2. @implementation NSDictionary (MutableDeepCopyOfArrays)
  3. - (NSMutableDictionary *)mutableDeepCopyOfArrays
  4. {
  5. NSMutableDictionary *ret = [NSMutableDictionary dictionaryWithCapacity:[self count]];
  6. NSArray *keys = [self allKeys];
  7. for (id key in keys)
  8. {
  9. NSArray *oneArray = [self valueForKey:key];
  10. NSMutableArray *arrayCopy = [[NSMutableArray alloc] initWithArray:oneArray];
  11. [ret setValue:arrayCopy forKey:key];
  12. [arrayCopy release];
  13. }
  14. return ret;
  15. }
  16. - (NSMutableDictionary *) mutableDeepCopy
  17. {
  18. NSMutableDictionary *ret = [NSMutableDictionary dictionaryWithCapacity:[self count]];
  19. NSArray *keys = [self allKeys];
  20. for (id key in keys)
  21. {
  22. id oneValue = [self valueForKey:key];
  23. id oneCopy = nil;
  24. if ([oneValue respondsToSelector:@selector(mutableDeepCopy)])
  25. oneCopy = [oneValue mutableDeepCopy];
  26. else if ([oneValue respondsToSelector:@selector(mutableCopy)])
  27. oneCopy = [oneValue mutableCopy];
  28. if (oneCopy == nil)
  29. oneCopy = [oneValue copy];
  30. [ret setValue:oneCopy forKey:key];
  31. }
  32. return ret;
  33. }
  34. @end