文件数据持久化
2015-07-15 16:22
85 查看
概论
所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:
plist文件(属性列表)
preference(偏好设置)
NSKeyedArchiver(归档)
SQLite 3
CoreData
iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”。沙盒的目录结构如下:
应用程序包 NSString *path = [[NSBundle mainBundle] bundlePath];
在沙盒中有几个这样的文件夹:(这些文件都是位于Home路径下的)
(1)Documents: 该文件夹用于程序数据文件写入到该目录下,iTunes同步该应用时会同步此文件夹中的内容,用于存储用户数据以及需要备份的数据。
(2)Library:include Caches and Preferences .
Preferences: iTunes同步,该应用时会同步此文件夹中的内容,用于放置用户的偏好数据,你不能直接创建偏好的设置文件,应该使用NSUserDefaults的类来获取和设置应用程序偏好
Caches:iTunes不同步,用于存放应用程序专用的支持文件,保存应用程序再次启动过程需要的信息。
(3)tmp:Tunes不同步,临时文件夹,下次启动就会将该文件夹中的东西删除。
获取目录的方法:
(1)获取Home目录的方法:
NSString *homeDir = NSHomeDirectory();
(2)获取Documents目录路径的方法:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
(3)获取Caches目录路径的方法:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesDir = [paths objectAtIndex:0];
(4)获取tmp目录路径的方法:
NSString *tmpDir = NSTemporaryDirectory();
(5)获取应用程序程序包中资源文件路径的方法(获取apple.png);
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"apple" ofType:@"png"];
数据持久化:/article/1317566.html
所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:
plist文件(属性列表)
preference(偏好设置)
NSKeyedArchiver(归档)
SQLite 3
CoreData
iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”。沙盒的目录结构如下:
应用程序包 NSString *path = [[NSBundle mainBundle] bundlePath];
在沙盒中有几个这样的文件夹:(这些文件都是位于Home路径下的)
(1)Documents: 该文件夹用于程序数据文件写入到该目录下,iTunes同步该应用时会同步此文件夹中的内容,用于存储用户数据以及需要备份的数据。
(2)Library:include Caches and Preferences .
Preferences: iTunes同步,该应用时会同步此文件夹中的内容,用于放置用户的偏好数据,你不能直接创建偏好的设置文件,应该使用NSUserDefaults的类来获取和设置应用程序偏好
Caches:iTunes不同步,用于存放应用程序专用的支持文件,保存应用程序再次启动过程需要的信息。
(3)tmp:Tunes不同步,临时文件夹,下次启动就会将该文件夹中的东西删除。
获取目录的方法:
(1)获取Home目录的方法:
NSString *homeDir = NSHomeDirectory();
(2)获取Documents目录路径的方法:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
(3)获取Caches目录路径的方法:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesDir = [paths objectAtIndex:0];
(4)获取tmp目录路径的方法:
NSString *tmpDir = NSTemporaryDirectory();
(5)获取应用程序程序包中资源文件路径的方法(获取apple.png);
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"apple" ofType:@"png"];
数据持久化:/article/1317566.html
相关文章推荐
- GeoGlobe Server运维
- 获取当前月第一天和最后一天
- linux下一个有意思的问题(文件名以短划线或空格开头)
- Web开发技术十年发展历程
- 随机数
- 编写yarn应用
- java的世界
- XMLHttpRequest对象的属性和方法
- jni 的一个demo
- Codeforces 558B Amr and The Large Array(hash)
- 你觉得测试人员的主要工作职责是什么?
- intell IDE初始用
- 3种解耦方式
- 你觉得测试人员的主要工作职责是什么?
- GeoGlobe Server运维
- eclipse Formatter配置文件生成过程
- JS中Null与Undefined的区别
- C++派生访问控制说明符
- Android 表情功能的完整处理方案
- js 弹出对话框3种方式