iOS 用户信息存储的工具类

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN
@interface UserInfo : NSObject
@property (nonatomic,copy)NSString *userid;//用户id
@property (nonatomic,copy)NSString *avatar;//头像
@property (nonatomic,copy)NSString *mobile;//手机号
@property (nonatomic,copy)NSString *userName;//用户名
@property (nonatomic,copy)NSString *nickname;//用户昵称
@property (nonatomic,copy)NSString *birthday;//生日
@property (nonatomic,copy)NSString *token;//token
@property (nonatomic,copy)NSString *sex;//性别

 - (instancetype)initWithDictionary:(NSDictionary *)dictionary;
@end

@interface UserManager : NSObject

/**
  存储用户信息

 @param dic 服务器获取来的用户信息字典
 @return <#return value description#>
 */
+ (BOOL)saveUserInfo:(NSDictionary *)dic;

/**
 取用户信息

 @return 返回用户信息模型
 */
+ (UserInfo *)userInfo;

/**
  清空用户信息

 @return <#return value description#>
 */
+ (BOOL)clearUserInfo;

@end
NS_ASSUME_NONNULL_END
#import "UserManager.h"

@implementation UserInfo

- (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]];
}

+ (UserInfo *)userInfo
{
    id  data = [NSKeyedUnarchiver unarchiveObjectWithFile:[self path]];
    UserInfo *model = [[UserInfo 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
#import "UserManager.h"
// 调用
[UserManager saveUserInfo:@{@"nickname":@"小张飞"}];
    
UserInfo *model =  [UserManager userInfo];
    
NSLog(@"%@", model.nickname);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值