美文网首页iOS
NSUserDefauts的使用

NSUserDefauts的使用

作者: 一路向北vs | 来源:发表于2018-03-15 15:02 被阅读0次

一、了解NSUserDefaults以及它可以直接存储的类型

NSUserDefauts是iOS系统给我提供的一个单例类,它适合储存轻量级的本地数据。例如用户名和密码,app的主题颜色,通知设置,用户头像等。通过类方法standarUserDefauts可以获取NSUserDefauts实例。如:

NSUserDefauts *defauts=[NSUserDefauts standarUserDefauts];

NSUserDefauts实例是以key-value的形式来存取数据,key是名称,value是相应的数据。可以使用方法objectForKey:和setObject:forKey:取/存数据。

NSUserDefauts支持的数据类型:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL。

注意:NSUserDefaults 存储的对象全是不可变的(这一点非常关键,弄错的话程序会出bug),例如,如果我想要存储一个NSMutableArray 对象,我必须先创建一个不可变数组(NSArray)再将它存入NSUserDefaults中去,代码如下:

NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"123",@"234", nil nil];  

NSArray * array = [NSArray arrayWithArray:mutableArray];  

NSUserDefaults *user = [NSUserDefaults standardUserDefaults];  

[user setObject:array forKey:@"记住存放的一定是不可变的"];  

取出数据是一样的,想要用NSUserDefaults中的数据给可变数组赋值

二、使用 NSUserDefaults 存储自定义对象

注意:NSUserDefauts不能直接储存自定义数据模型,如果要存储自定义对象,必须的把自定义对象转换为NSData类型

如:使用归档将要存储的对象转换成NSData再储存到NSUserDefauts。

存:

PersonInfo *personinfo=[[PersonInfo alloc]init];

personinfo.username=@"ww";

NSData *data=[NSKeyedArchiver archivedDataWithRootObject:personinfo];  

NSUserDefauts *defauts=[NSUserDefauts standarUserDefauts];

[defauts setObject:data forKey:@"personinfo"];  

取:

NSUserDefauts *defauts=[NSUserDefauts standarUserDefauts];

 NSdData *data = [defauts objectForKey:@"personinfo"];

PersonInfo *personinfo= [NSKeyedUnarchiver unarchiveObjectWithData:data]; 

相关文章

  • NSUserDefauts的使用

    一、了解NSUserDefaults以及它可以直接存储的类型 NSUserDefauts是iOS系统给我提供的一个...

  • iconfont的使用(下载使用)

    1、下载文件 2、在生命周期中引入项目 beforeCreate () { var domModule = ...

  • Gson的使用--使用注解

    Gson为了简化序列化和反序列化的过程,提供了很多注解,这些注解大致分为三类,我们一一的介绍一下。 自定义字段的名...

  • 记录使用iframe的使用

    默认记录一下----可以说 这是我第一次使用iframe 之前都没有使用过; 使用方式: 自己开发就用了这几个属...

  • with的使用

    下面例子可以具体说明with如何工作: 运行代码,输出如下

  • this的使用

    什么是this? this是一个关键字,这个关键字总是返回一个对象;简单说,就是返回属性或方法“当前”所在的对象。...

  • this的使用

    JS中this调用有几种情况 一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象...

  • ==的使用

    积累日常遇到的编码规范,良好的编码习惯,持续更新。。。 日常使用==用于判断的时候,习惯性将比较值写前面,变量写后...

  • this的使用

    1.默认绑定,就是函数立即执行。 函数立即执行就是指向window,但是如果是node环境,就是指向全局conso...

  • %in% 的使用

    写在前面:From 生信技能书向量难点之一:%in% 难点 (1)== 与 %in% 的区别== 强调位置,x和对...

网友评论

    本文标题:NSUserDefauts的使用

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