UserManager.m 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. //
  2. // UserManager.m
  3. // LiveTV
  4. //
  5. // Created by 翟玉磊 on 2019/4/22.
  6. // Copyright © 2019 翟玉磊. All rights reserved.
  7. //
  8. #import "UserManager.h"
  9. @implementation UserInfo
  10. - (instancetype)initWithDictionary:(NSDictionary *)dictionary
  11. {
  12. if ([dictionary isKindOfClass:[NSDictionary class]])
  13. {
  14. if (self = [super init])
  15. {
  16. [self setValuesForKeysWithDictionary:dictionary];
  17. }
  18. }
  19. return self;
  20. }
  21. - (void)setValue:(id)value forKey:(NSString *)key
  22. {
  23. if ([value isKindOfClass:[NSNull class]])
  24. {
  25. return;
  26. }
  27. [super setValue:value forKey:key];
  28. }
  29. #pragma mark ————————— 对未定义key的处理方法 —————————————
  30. - (void)setValue:(id)value forUndefinedKey:(NSString *)key
  31. {
  32. // id 变量名现在可以直接使用,比如你要将服务器的 id 转成 userid
  33. if([key isEqualToString:@"id"])
  34. {
  35. // self.userid = value;
  36. // return;
  37. }
  38. }
  39. @end
  40. @implementation UserManager
  41. + (BOOL)saveUserInfo:(NSDictionary *)dic
  42. {
  43. return [NSKeyedArchiver archiveRootObject:dic toFile:[self path]];
  44. }
  45. + (UserInfo *)userInfo
  46. {
  47. id data = [NSKeyedUnarchiver unarchiveObjectWithFile:[self path]];
  48. UserInfo *model = [[UserInfo alloc]initWithDictionary:data];
  49. return model;
  50. }
  51. + (BOOL)clearUserInfo
  52. {
  53. NSFileManager *defaultManager = [NSFileManager defaultManager];
  54. if ([defaultManager isDeletableFileAtPath:[self path]])
  55. {
  56. //删除归档文件
  57. return [defaultManager removeItemAtPath:[self path] error:nil];
  58. }
  59. else
  60. {
  61. return NO;
  62. }
  63. }
  64. /**
  65. Documents/ 保存应用程序的重要数据文件和用户数据文件等。用户数据基本上都放在这个位置(例如从网上下载的图片或音乐文件),该文件夹在应用程序更新时会自动备份,在连接iTunes时也可以自动同步备份其中的数据。
  66. Library:这个目录下有两个子目录,可创建子文件夹。可以用来放置您希望被备份但不希望被用户看到的数据。该路径下的文件夹,除Caches以外,都会被iTunes备份.
  67. Library/Caches: 保存应用程序使用时产生的支持文件和缓存文件(保存应用程序再次启动过程中需要的信息),还有日志文件最好也放在这个目录。iTunes 同步时不会备份该目录并且可能被其他工具清理掉其中的数据。
  68. Library/Preferences: 保存应用程序的偏好设置文件。NSUserDefaults类创建的数据和plist文件都放在这里。会被iTunes备份。
  69. @return <#return value description#>
  70. */
  71. +(NSString *)path
  72. {
  73. // 获取沙盒根目录路径
  74. NSString *homeDir = NSHomeDirectory();
  75. // 获取Documents目录路径
  76. NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) firstObject];
  77. //获取Library的目录路径
  78. NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) lastObject];
  79. // 获取cache目录路径
  80. NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) firstObject];
  81. // 获取tmp目录路径
  82. NSString *tmpDir = NSTemporaryDirectory();
  83. // 获取应用程序程序包中资源文件路径的方法:
  84. NSString *bundle = [[NSBundle mainBundle] bundlePath];
  85. NSString *name = @"userinfo";
  86. NSString *type = @"sql";
  87. NSString *allName = [NSString stringWithFormat:@"%@.%@",name,type];
  88. return [tmpDir stringByAppendingPathComponent:allName];;
  89. }
  90. @end