美文网首页
个人信息储存

个人信息储存

作者: 滴滴滴开门 | 来源:发表于2022-01-19 12:02 被阅读0次

    记录当自己参考的。

    先创建一个继承NSObject的User文件。
    然后声明要保存的名称,比如

    @interface User : NSObject

    @interface User : NSObject

    @property(strong,nonatomic)NSString *User_address;//地址
    @property(strong,nonatomic)NSString *User_contractInfo;
    @property(strong,nonatomic)NSString *User_email;//邮件
    @property(strong,nonatomic)NSString *User_googleState;//
    @property(strong,nonatomic)NSString *User_headUrl;//头像
    @property(strong,nonatomic)NSString *User_id;//用户id
    @property(strong,nonatomic)NSString *User_mobile;//用户手机
    @property(strong,nonatomic)NSString *User_payStatus;//用户支付状态
    @property(strong,nonatomic)NSString *User_powerStatus;//
    @property(strong,nonatomic)NSString *User_realName;//
    @property(strong,nonatomic)NSString *User_sex;//用户性别
    @property(strong,nonatomic)NSString *User_storeName;//用户店名
    @property(strong,nonatomic)NSString *User_token;//用户token
    @property(strong,nonatomic)NSString *User_type;//
    @property(strong,nonatomic)NSString *User_username;//用户手机号

    @property(strong,nonatomic)NSString *country_areaCode;//国家地区区号
    @property(strong,nonatomic)NSString *country_enName;//国家名字英文
    @property(strong,nonatomic)NSString *country_id;//国家id
    @property(strong,nonatomic)NSString *country_language;//国家语言
    @property(strong,nonatomic)NSString *country_localCurrency;//国家币种
    @property(strong,nonatomic)NSString *country_sort;//国家sort
    @property(strong,nonatomic)NSString *country_zhName;//国家名字中文

    • (instancetype)initWithDictionary:(NSDictionary *)dictionary;
      @end
      @interface UserManager : NSObject

    /**
    存储用户信息
    @param dic 服务器获取来的用户信息字典
    @return <#return value description#>
    */

    • (BOOL)saveUserInfo:(NSDictionary *)dic;

    /**
    取用户信息
    @return 返回用户信息模型
    */

    • (User *)userInfo;

    /**
    清空用户信息
    @return <#return value description#>
    */

    • (BOOL)clearUserInfo;

    @end

    在.m文件就
    @implementation User

    • (instancetype)initWithDictionary:(NSDictionary *)dictionary
      {
      if ([dictionary isKindOfClass:[NSDictionary class]])
      {
      if (self = [super init])
      {
      [self setValuesForKeysWithDictionary:dictionary];
      }
      }
      return self;
      }

    • (void)setValue:(id)value forKey:(NSString *)key
      {
      if ([value isKindOfClass:[NSNull class]])
      {
      return;
      }
      [super setValue:value forKey:key];
      }

    pragma mark ————————— 对未定义key的处理方法 —————————————

    • (void)setValue:(id)value forUndefinedKey:(NSString *)key
      {
      // id 变量名现在可以直接使用,比如你要将服务器的 id 转成 userid
      if([key isEqualToString:@"id"])
      {
      // self.userid = value;
      // return;
      }

    }
    @end
    @implementation UserManager

    • (BOOL)saveUserInfo:(NSDictionary *)dic
      {
      return [NSKeyedArchiver archiveRootObject:dic toFile:[self path]];
      }

    • (User *)userInfo
      {
      id data = [NSKeyedUnarchiver unarchiveObjectWithFile:[self path]];
      User *model = [[User alloc]initWithDictionary:data];
      return model;
      }

    • (BOOL)clearUserInfo
      {
      NSFileManager *defaultManager = [NSFileManager defaultManager];
      if ([defaultManager isDeletableFileAtPath:[self path]])
      {
      //删除归档文件
      return [defaultManager removeItemAtPath:[self path] error:nil];
      }
      else
      {
      return NO;
      }
      }

    /**
    Documents/ 保存应用程序的重要数据文件和用户数据文件等。用户数据基本上都放在这个位置(例如从网上下载的图片或音乐文件),该文件夹在应用程序更新时会自动备份,在连接iTunes时也可以自动同步备份其中的数据。

    Library:这个目录下有两个子目录,可创建子文件夹。可以用来放置您希望被备份但不希望被用户看到的数据。该路径下的文件夹,除Caches以外,都会被iTunes备份.

    Library/Caches: 保存应用程序使用时产生的支持文件和缓存文件(保存应用程序再次启动过程中需要的信息),还有日志文件最好也放在这个目录。iTunes 同步时不会备份该目录并且可能被其他工具清理掉其中的数据。
    Library/Preferences: 保存应用程序的偏好设置文件。NSUserDefaults类创建的数据和plist文件都放在这里。会被iTunes备份。

    @return <#return value description#>
    */
    +(NSString *)path
    {
    // // 获取沙盒根目录路径
    // NSString *homeDir = NSHomeDirectory();
    // // 获取Documents目录路径
    // NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) firstObject];
    // //获取Library的目录路径
    // NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) lastObject];
    // // 获取cache目录路径
    // NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) firstObject];
    // // 获取tmp目录路径
    NSString *tmpDir = NSTemporaryDirectory();
    // // 获取应用程序程序包中资源文件路径的方法:
    // NSString *bundle = [[NSBundle mainBundle] bundlePath];

    NSString *name = @"userinfo";
    NSString *type = @"sql";
    
    NSString *allName = [NSString stringWithFormat:@"%@.%@",name,type];
    
    return [tmpDir stringByAppendingPathComponent:allName];;
    

    }

    @end

    对这个进行使用

    [UserManager saveUserInfo:@{@"User_address":Userdic[@"address"]}];


    User *model = [UserManager userInfo];
    NSLog(@"===%@",model.User_address);

    相关文章

      网友评论

          本文标题:个人信息储存

          本文链接:https://www.haomeiwen.com/subject/htjrhrtx.html