iOS数据持久化——简单介绍

本文介绍了iOS系统的数据安全体系及应用程序存储机制,包括沙箱目录结构及其子目录用途,并概述了四种本地数据持久化方式:属性列表、对象归档、SQLite数据库及CoreData。
iOS有一套完整的数据安全体系,iOS应用程序只能访问自己的目录,这个目录称为沙箱目录,而应用程序间
禁止数据的共享和访问。

下面的目录是iOS平台的沙箱目录,我们可以在模拟器下面看到,在真实设备上也是这样存储的:

/Users/<用户>/Library/Application Support/iPhone Simulator/6.0/Applications/A262B02A-1975-4A7A-AB8C-C181E2CC059A
其中A262B02A-1975-4A7A-AB8C-C181E2CC059A是应用程序ID,在安装时由系统分配。DocumentsLibrarytmp
都是沙箱目录的子目录,其目录结构如下所示:
├── Documents
│ └── NotesList.sqlite3
├── Library
│ ├── Caches
│ └── Preferences
├── tmp
└── PresentationLayer.app

1. Documents目录
该目录用于存储非常大的文件或需要非常频繁更新的数据,能够进行iTunes或iCloud的备份。获取目录位置的
代码如下所示:

NSArray * documentDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//其中documentDirectory是只有一个元素的数组,因此还需要使用下面的代码取出一个路径来:
NSString * myDocPath = [documentDirectory objectAtIndex:0];
//或
NSString * myDocPath = [documentDirectory lastObject];

2. Library目录
在Library目录下面有Preferences和Caches目录,其中前者用于存放应用程序的设置数据,后者与Documents很相似,可以存放应用程序的数据,用来存储缓存文件。
3. tmp目录
这是临时文件目录,用户可以访问它。它不能够进行iTunes或iCloud的备份。要获取目录的位置,可以使用如下代码:

NSString *tmpDirectory = NSTemporaryDirectory();


【持久化方式】
持久化方式就是数据存取方式。iOS支持本地存储和云端存储,这里主要介绍本地存储,主要涉及如下4种机制。
1.属性列表。集合对象可以读写到属性列表文件中。
2. 对象归档。对象状态可以保存到归档文件中。
3. SQLite数据库。SQLite是一个开源嵌入式关系型数据库。
4. Core Data。它是一种对象关系映射技术(ORM),本质上也是通过SQLite存储的。
采用什么技术,要看具体实际情况而定。属性列表文件和对象归档一般用于存储少量数据。属性列表文件的
访问要比对象归档的访问简单,Foundation框架集合对象都有对应的方法读写属性列表文件,而对象归档是借助
NSData实现的,使用起来比较麻烦。SQLite数据库和Core Data一般用于有几个简单表关系的大量数据的情况。如
果是复杂表关系而且数据量很大,应该考虑把数据放在远程云服务器中。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值