12-读书笔记----iOS开发指南:从零基础到App Store上架--iOS-数据持久化

iOS-数据持久化



iOS应用程序只能访问自己的目录,这个目录称为沙箱目录



DocumentsLibrarytmp都是沙箱目录的子目录,其目录结构如下所示。

├── Documents

│ └── NotesList.sqlite3 ├──Library

│ ├── Caches

│ └── Preferences ├── tmp

└── PresentationLayer.app


1. Documents目录

该目录用于存储非常大的文件或需要非常频繁更新的数据,能够进行 iTunesiCloud的备份。

2. Library目录

Library目录下面有 PreferencesCaches目录,其中前者用于存放应用程序的设置数据,后者与 Documents很 相似,可以存放应用程序的数据,用来存储缓存文件。

3. tmp目录

这是临时文件目录,用户可以访问它。它不能够进行iTunesiCloud的备份。


持久化方式

持久化方式就是数据存取方式。iOS支持本地存储和云端存储,本章主要介绍本地存储,主要涉及如下4种机制。 

属性列表。集合对象可以读写到属性列表文件中。

对象归档。对象状态可以保存到归档文件中。

SQLite数据库。SQLite是一个开源嵌入式关系型数据库。

Core Data它是一种对象关系映射技术(ORM),本质上也是通过SQLite存储的。

采用什么技术,要看具体实际情况而定。属性列表文件和对象归档一般用于存储少量数据。属性列表文件的 访问要比对象归档的访问简单,Foundation框架集合对象都有对应的方法读写属性列表文件,而对象归档是借助NSData实现的,使用起来比较麻烦。SQLite数据库和Core Data一般用于有几个简单表关系的大量数据的情况。如 果是复杂表关系而且数据量很大,应该考虑把数据放在远程云服务器中。


属性列表

属性列表文件是一种XML文件,Foundation框架中的数组和字典等都可以与属性列表文件互相转换



对象归档

对象归档是一种序列化方式。为了便于数据传输,先将归档对象序列化为一个文件,然后再通过反归档将数据恢复到对象中。归档技术可以实现数据的持久化,不过在大量数据和频繁读写的情况下,它就不太合适了。对一个对象进行完整归档需要满足的条件为:该对象的类必须实现NSCoding协议,而且每个成员变量应该 是基本数据类型或都是实现NSCoding协议的某个类的实例。


使用 SQLite 数据库








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值