开发中经常会管理个人信息,觉得自己在开发者中用的这套个人信息管理类挺好用的,贴出来跟大家互相学习
91C01A43-521D-4033-8023-EDBFF4B3CDCF.png#import <Foundation/Foundation.h>
@interface NUDHelper : NSObject
+(void)saveValue:(id) value forKey:(NSString *)key;
+(id)valueWithKey:(NSString *)key;
+(BOOL)boolValueWithKey:(NSString *)key;
+(void)saveBoolValue:(BOOL)value withKey:(NSString *)key;
+(void)removeValueWithKey:(NSString *) key;
+(void)print;
/**
* 对 NSUserDefaults 进行了一下简单的封装
*
*/
#import "NUDHelper.h"
@implementation NUDHelper
+(void)saveValue:(id) value forKey:(NSString *)key{
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:value];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:data forKey:key];
[userDefaults synchronize];
}
+(id)valueWithKey:(NSString *)key{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSData *data = [userDefaults objectForKey:key];
id user;
if(data){
user = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
return user;
}
+(BOOL)boolValueWithKey:(NSString *)key
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
return [userDefaults boolForKey:key];
}
+(void)removeValueWithKey:(NSString *) key
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults removeObjectForKey:key];
}
+(void)saveBoolValue:(BOOL)value withKey:(NSString *)key
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:value forKey:key];
[userDefaults synchronize];
}
+(void)print{
// NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
// NSDictionary *dic = [userDefaults dictionaryRepresentation];
// DNSLog(@"%@",dic);
}
#import <Foundation/Foundation.h>
@class UserModel;
@interface AMUserInfoManager : NSObject
//创建单例,return自身
+(AMUserInfoManager *)sharedManager;
//判断用户是否已登录,return是否已登录
-(BOOL)isLoginIn;
//保存个人信息
-(void)saveUserInfo:(UserModel *)user;
//读取个人信息
-(UserModel *)getUserInfo;
//移除用户个人信息
-(void)removeUserInfo:(UserModel *)user;
@end
//对个人用户信息进行管理
#import "AMUserInfoManager.h"
#import "NUDHelper.h"
#import "Header.h"
static AMUserInfoManager *sharedManager = nil;
@implementation AMUserInfoManager
/**
* 创建单例
*
* @return 自身
*/
+ (AMUserInfoManager *) sharedManager
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedManager=[[self alloc]init]; //
});
return sharedManager;
}
//判断用户是否已登录
-(BOOL)isLoginIn{
UserModel *user = [self getUserInfo];
if (user) {
return YES;
}else{
return NO;
}
}
//保存用户个人信息
-(void)saveUserInfo:(UserModel *)user{
[NUDHelper saveValue:user forKey:NUD_USER_INFROMATION];
}
//读取个人信息
-(UserModel *)getUserInfo{
UserModel *user = [NUDHelper valueWithKey:NUD_USER_INFROMATION];
return user;
}
//移除个人用户信息
-(void)removeUserInfo:(UserModel *)user{
[NUDHelper removeValueWithKey:NUD_USER_INFROMATION];
}
@end
#import <Foundation/Foundation.h>
@interface UserModel : NSObject
@property (nonatomic, strong) NSString *userID;//用户ID
@property (nonatomic, strong) NSString *userToken;//用户token
@property (nonatomic, strong) NSString *userName;//用户昵称
@property (nonatomic, strong) NSString *userSex;//用户性别
@property (nonatomic, strong) NSString *userAge;//用户年龄
@property (nonatomic, strong) NSString *userPhone;//用户手机号
@property(nonatomic, strong) NSString *headimgurl;//用户头像
- (id) initWithDictionary:(NSDictionary *)dictionary;
@end
#import "UserModel.h"
@implementation UserModel
-(id)initWithDictionary:(NSDictionary *)dictionary{
self = [super init];
if (self) {
//昵称
if ([[dictionary objectForKey:@"nickname"] isKindOfClass:[NSNull class]]) {
self.userName = @"未命名";
}else{
self.userName = [dictionary objectForKey:@"nickname"];
}
//手机号
if ([[dictionary objectForKey:@"mobile"] isEqualToString:@""]) {
self.userPhone = @"";
}else{
self.userPhone = [dictionary objectForKey:@"mobile"];
}
//用户ID
self.userID = [dictionary objectForKey:@"user_id"];
//token
self.userToken = [dictionary objectForKey:@"token"];
//用户头像
self.headimgurl = [dictionary objectForKey:@"head_pic"];
//用户性别
self.userSex = [dictionary objectForKey:@"sex"];
//用户生日
self.userAge = [dictionary objectForKey:@"birthday"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.userName forKey:@"username"];
[aCoder encodeObject:self.userID forKey:@"user_id"];
[aCoder encodeObject:self.userPhone forKey:@"mobile"];
[aCoder encodeObject:self.userToken forKey:@"token"];
[aCoder encodeObject:self.headimgurl forKey:@"head_pic"];
[aCoder encodeObject:self.userSex forKey:@"sex"];
[aCoder encodeObject:self.userAge forKey:@"birthday"];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self) {
self.userName = [aDecoder decodeObjectForKey:@"username"];
self.userID = [aDecoder decodeObjectForKey:@"user_id"];
self.userPhone = [aDecoder decodeObjectForKey:@"mobile"];
self.userToken = [aDecoder decodeObjectForKey:@"token"];
self.headimgurl = [aDecoder decodeObjectForKey:@"head_pic"];
self.userAge = [aDecoder decodeObjectForKey:@"sex"];
self.userSex = [aDecoder decodeObjectForKey:@"birthday"];
}
return self;
}
-(NSString *)description{
NSString *format = @"{\n"
" a_userID = %@;\n"
" a_userName= %@;\n"
" a_userPhone = %@;\n"
" a_usertoken = %@;\n"
" a_headImgUrl = %@;\n"
" a_userSex = %@;\n"
" a_userAge = %@;\n"
"}";
return [NSString stringWithFormat:format,
self.userID,
self.userName,
self.userPhone,
self.userToken,
self.headimgurl,
self.userSex,
self.userAge];
}
@end
个人中心这块正在调试接口,所以UserModel里面的个人信息不多,需要其他信息可以按套路写就行了
用法:可以把AMUserInfoManager.h和UserModel.h这两个头文件写到pct文件里,
需要存储个人信息的时候
或者更新信息
FC2C45B1-BEDE-4C92-B72E-F1934B51D853.png退出登录
E634627A-63ED-40BE-A92D-A882E2FC7A25.png
网友评论