iOS数据持久化方法

--->梳理一下知识点,比较粗糙,如果有认知上的错误非常欢迎指出。

iOS数据持久化有4种方法:普通的文件、SQLite、plist、归档。(本质都是磁盘上的文件)

1. SQLite:

也是一种保存在磁盘上的格式化的文件,好处在于查找、存储方便。不像归档,必须每次全部解当,然后再一次性归档。

2. File:

不存在文件格式,就是数据流,无法进行查找、删除等操作。通过NSFileHandle类配合NSFileManager类实现文件的读写操作。

3. plist:

是一种特殊的xml文件格式,特殊在存储数据的标签固定,不能自定义标签。但是有个好处是,在iOS中plist文件读取非常方便。普通的xml文件还要自己建立数据模型去解析。plist文件的读写:只要知道了根部的数据结构,和路径,读写非常方便。

NSUserDefaults:苹果官方定义的类,实现对特定目录下plist文件的操作。该plist中一般存储用户的一些偏好设置、或者一些其他的信息 (用户名、密码、是否第一次启动等信息)。NSUserDefaults管理的plist文件是一个特殊的plist文件,它的根是个字典、plist文件目录以及名字用户都不能去修改,只能读写文件内容。

4. 归档:

自定义的对象是没法用plist存储的,必须将对象的每一项分开存储,但是这样有个问题就是破坏了数据之间本来的关系。这个时候可以用归档存储数据,自定义的数据模型必须遵循NSCoding协议,实现相关方法。归档还可以实现对象的深度拷贝。


数据传输两大格式:xml、json

1. XML

各种平台无关性、语言无关性。基本有两种解析方法,只是实现方法不同而已.

(1) DOM:(Document Object Model),将xml数据读到内存中,保存文档的树结构,可以随机访问文档中任意节点,不好的地方是对内存消耗比较大。iOS下DOM又有两种情况,一种是指定绝对的路径一层层去访问,有google的第三方库GDataXMLNode,还有一种叫做xPath的方法。

(2) SAX:(Simple APIs for XML),苹果官方提供了NSXMLParser类进行解析。用协议代理实现,可以读一行解析一行,对内存消耗少,时间驱动型的。但是不能随机读取,选用哪种方法这要看需求。

2. JSON:

iOS中官方提供了NSJSONSerialization类,参见官方文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值