iOS数据持久化 偏好设置

来源:互联网 发布:淘宝卖家怎么查访客 编辑:程序博客网 时间:2024/06/04 18:30

1.偏好设置简介

  • 用NSUserDefaults存储的数据下次程序运行的时候依然存在,那么它把数据存储在什么地方了呢?其实它存储在应用程序内置(沙盒)的一个plist文件里,这个可以根据路径看到。

6B2C8AD6-538B-4A41-98B8-36CFD8E76D65

  • 既然它是存储在一个plist文件里的,那么它自然也就是以键值对的方式存在的,它的存储形式其实就是一种XML格式的文件:

20150721113710564

2.偏好设置的使用

  • 保存数据
  1. 使用偏好设置对数据进行保存之后, 它保存到系统的时间是不确定的,会在将来某一时间点自动将数据保存到Preferences文件夹下面,如果需要即刻将数据存储,必须使用[defaults synchronize]
  2. 想要实现自定义对象的存储,需要将该对象转化为NSData类型,再进行保存
  1. //获取NSUserDefaults对象
  2. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  3. //保存数据
  4. [defaults setObject:@"jack" forKey:@"name"];
  5. [defaults setInteger:20 forKey:@"age"];
  6. [defaults setBool:YES forKey:@"sex"];//YES表示性别为男性
  7. //同步数据
  8. [defaults synchronize];
  • 读取数据
  1. //获取NSUserDefaults对象
  2. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  3. //读取数据(类型需要与存储时保持一致)
  4. NSString *name = [defaults objectForKey:@"name"];
  5. NSInteger age = [defaults integerForKey:@"age"];
  6. BOOL sex = [defaults boolForKey:@"sex"];
  •  打印结果

63CAF876-5CA3-44D8-AC80-FE0899E2FFD1

  • 删除数据
  1. //删除数据
  2. [defaults removeObjectForKey:@"sex"];
  •  使用注意:偏好设置是专门用来保存应用程序的配置信息的, 一般情况不要在偏好设置中保存其他数据。如果利用系统的偏好设置来存储数据, 默认就是存储在Preferences文件夹下面的,偏好设置会将所有的数据都保存到同一个文件中。针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。
0 0
原创粉丝点击