iOS使用UserDefaults保存用户信息

项目中经常需要保存用户信息,如果希望用户版本升级后,一些信息继续保存不变,比如喜好,主题颜色等,可以使用UserDefaults保存这些信息,最好创建一个类专门管理这些信息。

UserDefaults官方文档

存储

+ (void)saveData:(NSObject *)object forKey:(NSString *)key{

//把相应的 object 压缩对象成为二进制数据    

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:object];

//把压缩好的数据用 KVC 方式保存起来    

[[NSUserDefaults standardUserDefaults] setObject:data forKey:key];

[[NSUserDefaults standardUserDefaults] synchronize];

}

其中,方法synchronise是为了强制存储,其实并非必要,因为这个方法会在系统中默认调用,但是你确认需要马上就存储,这样做是可行的。

获取

+ (id)readCacheDataForKey:(NSString *)key{

NSData *cache = [[NSUserDefaults standardUserDefaults] objectForKey:key];

if(cache){

@try{

//用NSKeyedUnarchiver解压二进制数据转为对象

NSObject *object = [NSKeyedUnarchiver unarchiveObjectWithData:cache];

return object;

}

@catch(NSException *exception){

//捕获到错误

}

@finally{

}

}else{

        return nil;

}}

删除

+ (void)deleteObjectForKey:(NSString *)key{

[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];

 [[NSUserDefaults standardUserDefaults] synchronize];

}

你可能感兴趣的:(iOS使用UserDefaults保存用户信息)