SafeForKey.m 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // SafeForKey.m
  3. // SecondBrush
  4. //
  5. // Created by zzs on 2015/12/14.
  6. // Copyright © 2016年 allen. All rights reserved.
  7. //
  8. #import "SafeForKey.h"
  9. typedef NS_ENUM(NSInteger, safeForKeyType) {
  10. safeString,
  11. safeStringInt,
  12. safeArray,
  13. safeDictionary
  14. };
  15. @implementation NSDictionary (safeforkey)
  16. -(id)safeStringForKey:(NSString *)key{
  17. return [self safeObjectForKey:key withSafeForKeyStype:safeString];
  18. }
  19. -(id)safeStringIntForKey:(NSString *)key{
  20. return [self safeObjectForKey:key withSafeForKeyStype:safeStringInt];
  21. }
  22. -(id)safeArrayForKey:(NSString *)key{
  23. return [self safeObjectForKey:key withSafeForKeyStype:safeArray];
  24. }
  25. -(id)safeDictionaryForKey:(NSString *)key{
  26. return [self safeObjectForKey:key withSafeForKeyStype:safeDictionary];
  27. }
  28. -(BOOL)isNUll:(id)object
  29. {
  30. if ([object isEqual:[NSNull null]] || object == nil || object == NULL) {
  31. return YES;
  32. }
  33. return NO;
  34. }
  35. -(id)safeObjectForKey:(NSString *)key withSafeForKeyStype:(safeForKeyType) type
  36. {
  37. id object = [self objectForKey:key];
  38. if (![self isNUll:object]) {
  39. return object;
  40. }
  41. switch (type) {
  42. case safeString:
  43. {
  44. return @"";
  45. }
  46. break;
  47. case safeStringInt:
  48. {
  49. return @"0";
  50. }
  51. break;
  52. case safeArray:
  53. {
  54. return [NSArray array];
  55. }
  56. break;
  57. case safeDictionary:
  58. {
  59. return [NSDictionary dictionary];
  60. }
  61. break;
  62. }
  63. }
  64. @end