属性列表,是一种用来存储串行化后的对象的文件。因为扩展名为plist ,因此通常被称为 plist文件。

  plist文件通常用于储存用户设置,也可以用于存储捆绑的信息,其内容为xml格式。它可以在程序运行期间动态的创建和读写,因此可以用于少量数据时候的数据持久化。

  NSUserDefaults类提供了一个与默认系统进行交互的编程接口,用户可以在程序运行的时候读写数据,实现了数据的持久化。而用于存储NSUserDefaults的文件实质上就是一个属性列表文件。

<一> 自定义属性列表存取

// 获得文件路径
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [documentPath stringByAppendingPathComponent:@"student.plist"]; // 往plist文件中存储的数据
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
NSDictionary *stu1= @{@"idNum":@"1",@"name": @"jereh"};
[dict setValue:stu1 forKey:@"stu1"];
// 新数据写入plist文件
[dict writeToFile:filePath atomically:YES]; // 读取plist文件中数据
NSMutableDictionary *dicNow = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
int idNum = [[dicNow objectForKey:@"idNum"] intValue];
NSString *name = [dicNow objectForKey:@"name"];

小结:

  1. 属性列表适合存储轻量级的本地数据
  2. 支持存储的数据格式为Foundation框架中得数据类型NSNumber,NSString,NSDate,NSArray,NSDictionary,BOOL, NSData
  3. 属性列表不能存储自定义的对象、
  4. 属性列表的根目录只能为NSDictionary或者NSArray
  5. 以键值对的形式存储
  6. 存储时间为整体应用程序存续时间,如果想要删除,需要删除整体应用程序

<二> NSUserDefaults

  // 创建NSUserDefaults对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; //存数据
[defaults setObject:@"jereh" forKey:@"name"];
//将缓存中的数据存放在磁盘上
[defaults synchronize]; //取数据
NSString *name = [defaults objectForKey:@"name"]; //删除数据
[defaults removeObjectForKey:@"name"];
   [defaults synchronize];

小结:

  1. NSUserDefaults适合存储轻量级的本地数据
  2. 支持存储的数据格式为Foundation框架中的数据类型
  3. 不能存储自定义的对象
  4. 以键值对的形式存储
  5. 存储时间为整体应用程序存续时间,如果想要删除,需要删除整体应用程序

最新文章

  1. Delphi 获取系统时间后格式化输出
  2. IBM X3650 M4服务器安装centos找不到硬盘的解决方法
  3. HDU 4610 Cards (合数分解,枚举)
  4. HDU-4608 I-number 枚举
  5. jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
  6. linux_ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
  7. Contains Duplicate leetcode
  8. html5,js插件实现手机端实现头像剪切上传
  9. sqlite ef6 踩坑
  10. linux_RAID
  11. Struts1开山篇
  12. SLA服务可用性怎么达到?
  13. 深入解析ConcurrentHashMap类
  14. Python——接口类、抽象类
  15. PYTHON 格式字符串中的填充符
  16. python-mongodb基本操作都在这了
  17. confluence 新tab 页面打开 kibana short link
  18. 释放linux的buff/cache
  19. PyQt5--QCheckBox
  20. 如何查看2to3.PY的帮助文档

热门文章

  1. [jbdj]SpringMVC框架(3)映射器
  2. Eclipse中配置约束(DTD,XSD)
  3. php简明学习笔记
  4. MySQL IO线程及相关参数调优
  5. 如何在通过knockout数据绑定的DOM元素上添加事件
  6. 20170709_python_学习记录
  7. 51nod_1417:天堂里的游戏
  8. Jenkins2 实现持续交付初次演练(MultiJob,Pipeline,Blue Ocean)
  9. 在 Linux 命令行脚本中执行 sudo 时自动输入密码
  10. 由于用mpu6050模块,所以要用上i2c通信原理。