UserInfo.m 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // Created by apple on 2017/4/5.
  3. // Copyright © 2017年 Danson. All rights reserved.
  4. //
  5. #import "UserInfo.h"
  6. /**infoKeys是用来在userDefault里面存取数据的
  7. */
  8. static NSArray *infoKeys;
  9. static UserInfo *userInfo = nil;
  10. void SaveObjectForKey(id object, NSString *key);
  11. @implementation UserInfo
  12. +(UserInfo *)shareInfo
  13. {
  14. static dispatch_once_t onceToken ;
  15. dispatch_once(&onceToken, ^{
  16. userInfo = [[UserInfo alloc] init] ;
  17. infoKeys = @[@"userDict",@"defaultHttp"];
  18. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
  19. for (NSString *key in infoKeys)
  20. {
  21. //读取空字典不会导致崩溃
  22. id obj = [ud objectForKey:key];
  23. [userInfo setValue:obj forKey:key];
  24. }
  25. }) ;
  26. return userInfo ;
  27. }
  28. -(void)setUserDict:(NSDictionary *)userDict
  29. {
  30. NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:userDict];
  31. for (NSString *akey in dic.allKeys) {
  32. id obj = dic[akey];
  33. if ([obj isEqual:[NSNull null]]) {
  34. [dic setValue:@"" forKey:akey];
  35. }
  36. }
  37. _userDict = [NSMutableDictionary dictionaryWithDictionary:dic];
  38. SaveObjectForKey(dic, infoKeys[0]);
  39. }
  40. -(void)setDefaultHttp:(NSString *)defaultHttp
  41. {
  42. _defaultHttp = defaultHttp;
  43. SaveObjectForKey(defaultHttp, infoKeys[1]);
  44. }
  45. @end
  46. void SaveObjectForKey(id object, NSString* key)
  47. {
  48. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
  49. if (!object || [object isEqual:[NSNull null]]) {
  50. if ([ud objectForKey:key]) {
  51. [ud removeObjectForKey:key];
  52. }
  53. }else{
  54. [ud setObject:object forKey:key];
  55. }
  56. [ud synchronize];
  57. }