本篇文章主要介绍了" iOS中的数据持久化",主要涉及到方面的内容,对于IOS开发感兴趣的同学可以参考一下:
原文出处: 王瑞华 本文由我们团队的王瑞华童鞋撰写。数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。 数据模型可...
原文出处: 王瑞华
本文由我们团队的王瑞华童鞋撰写。
数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。 数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。在iOS开发中,有很多种数据持久化方案,本文主要介绍 plist文件,NSKeyedArchiver,SQLite3,NSUserDefaults。
iOS的沙盒模型
iOS最为人所熟知的就是其沙盒模型,一个App的读写权限只限于自己的沙盒目录中。沙盒模型的好处有哪些?1. 安全,别的app无法修改你的程序。2. 保护隐私,别人app无法读取你的程序。3.便于系统管理,一个app产生的内容都包含在自己的沙盒中,便于系统管理。
iOS 沙盒目录结构如下
1 23456 | App Bundle,如xxx.app其实是一个目录,里面包含app二进制数据以及资源文件 Documents,存放程序产生的文档数据 Library Caches Preferences tmp,临时文件目录,目前我所知道的是下载文件会在此文件暂存,完成后进行处理 |
如果我们想获取上面某个目录的路径,应该如何实现呢?
对于最常用的Documents目录,iTunes同步该应用时会同步该文件夹内容,适合存放用户重要数据
Objective-C1 2 | NSString*searchPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject]; NSLog(@"%@",searchPath); |
Library/Caches:iTunes不会同步该文件夹
Library/Preferences: iTunes同步该应用时会同步此文件夹中的内容,通常保存应用的设置信息。
Objective-C