博客> 数据存储之一数据格式
数据存储之一数据格式
2019-11-13 19:22 评论:1 阅读:1996 Iven_Ma
ios 数据存储

1.了解iOS数据持久化的概念和方式

2.属性列表的读取和存储

3.xml文件的解析方法

4.json文件的写入和解析

5.数据持久化的方式和偏好设置的使用

一.iOS数据持久化的方式 1.属性列表:plist 2.对象归档:NSCoding 3.偏好设置:preference 4.数据库

上述四种存储方式,前三者比较简单,只适合小数据的存储和查询操作,数据库适合大数据的存储和查询,但是操作也相对复杂的多。

二.属性列表

1.属性列表是一种用来存储串行化后的对象的文件,以xml文件进行数据存储。 2.属性列表常用于储存用户设置,也可以用于存储捆绑的信息。 3.优点:可以直接在工程中打开查看编辑 4.缺点:只能存储foundation框架中的类型 5.属性列表的文件的扩展名为.plist,通常被称为plist文件 6.读取plis文件

 屏幕快照 2016-04-13 19.47.40.png

7.写入plist文件

 屏幕快照 2016-04-13 19.48.29.png

三.XML文件的解析 1.xml非常适合web传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据 2.优点:格式统一,符合标准;容易和其他系统进行远程交互,数据共享比较方便 3.缺点:xml文件庞大,文件格式复杂,传输占带宽。解析方式复杂。 4.xml解析

 屏幕快照 2016-04-13 19.52.45.png

 屏幕快照 2016-04-13 19.52.57.png

 屏幕快照 2016-04-13 19.53.15.png

四.JSON文件 1.JSON文件是一种轻量级的数据交换格式,可以把json文件的结构理解成无序的,可嵌套的key-value键值对是以结构体或数组的形式来组织的。 2.优点:数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;易于解析,客户端客户端可以通过简单的方式进行json数据的读取;因为json能直接被服务器端代码使用,大大简化了服务器端和客户端代码的使用。 3.缺点:没有xml格式这么推广的深入人心和喜用广泛,没有xml那么通用性。 4.json文件的存储

 屏幕快照 2016-04-13 20.13.18.png

5.读取json

 屏幕快照 2016-04-13 20.14.11.png

五.JSON文件和XML文件的比较

1.从编码角度上讲,虽然xml和json文件都有各自的编码工具,但是json文件编码要比xml文件编码简单,即使不借助编码工具也可以写出json文件,但是写出xml文件就有点困难。与xml一样,json也是基于文本的,且他们都是使用Unicode编码。

2.从解析方面讲,在普通的web应用领域,开发者经常为xml的解析伤脑筋,无论是服务器端生成或处理xml,还是客户端解析xml,都常常导致复杂的代码,极低的开发效率。

3.从编码的可读性来讲,xml有明显的优势,人类的语言更接近于这种的说明结构,json读起来更像一个数据块,读起来就比较费解。但对于机器来说,正好相反。

 屏幕快照 2016-04-13 20.19.22.png

 屏幕快照 2016-04-13 20.19.29.png

六.对象归档

1.对象归档是指将对象写入文件保存在硬盘的文件内,以二进制的形式进行存储,当再次打开应用程序,可以还原这些对象。也可以成为对象序列化,对象持外化。 2.归档是一种很常用的文件储存方法,几乎任何对象都能被归档存储,我们可以把自定义对象存储在文件中。 3.优点:通过归档方法保存的数据在文件中打开的是乱码,安全性能好。 4.缺点:只能对数据进行一次性的归档和解档,对数据的操作不是很方便。 5.归档的形式:①对foundation库中对象进行归档②自定义对象进行归档(需要实现归档协议。NSCoding) 6.归档的方法

 屏幕快照 2016-04-13 20.29.08.png

7.解档方法

 屏幕快照 2016-04-13 20.29.22.png

8.对自定义对象进行归档

①需要新建一个数据类,该类需要实现NSCoding协议,然后实现编码和解码这两个方法 ②在需要数据存储的地方把需要的数据放到上一步的数据类的对象中,然后结合使用NSObject和NSKeyedArchiver实现数据归档 ③NSCoder是Archiver字节流的抽象类。我们可以实现把数据写入一个coder,也可以从coder中读取我们写入的数据

 屏幕快照 2016-04-13 20.35.17.png

④存储二进制文件

 屏幕快照 2016-04-13 20.35.44.png

⑤读取二进制文件

 屏幕快照 2016-04-13 20.35.54.png

⑥快速归档对象

 屏幕快照 2016-04-13 20.36.04.png

七.偏好设置### 1.每个应用都有NSUserDefaults实例,通过他来存取偏好设置。 2.NSUserDefault是单例,同时也是线程安全的。 3.优点:使用简单 4.缺点:只支持NSString,NSArray,NSNumber,NSData,NSDictionary 5.偏好设置是专门用来保存应用程序的配置信息的。 6.如果利用偏好设置来存储数据,默认就是存储在Perfences文件夹下,偏好设置会将所有数据都保存到同一个文件。 7.代码解释

 屏幕快照 2016-04-13 20.46.21.png

收藏
1
sina weixin mail 回到顶部