首页 > 移动平台 > 详细

iOS 数据持久化的方式总结

时间:2015-10-19 20:46:59      阅读:262      评论:0      收藏:0      [点我收藏+]

一.属性列表, 可以通过NSArray, NSDictionary等等的writeToFile 方法写入一个plist 文件中, 持久保持属性

沙盒中的文件夹:  1.Documents : 存储长久保存的数据

               2.Library :

                 caches : 存放缓存文件, 比如视频, 音频, 图片, 小说等等

                 Preferences : 存储偏好设置, 比如: 应用程序是否是第一次运行, 保存用户名和密码,

              3.tmp : 存储临时文件, 比如下载的 zip, 解压后直接删除

数据持久化方式:

        1.(最简单) NSUserDefaults; 只适合存储少量数据, 比如账号, 密码;

        2.读写文件, 只支持八种数据, NSString; NSArray, NSDictionary ,二进制 --- NSData 以及各自的可变子类

VIP

        对于数组, 字典大容器deng, 想要实现文件读写, 必须要保证文件中的元素也必须是 数组, 字符串, 字典, 二进制数据等数据类型之一;

二.归档, 通过 Archive 对象对数据你进行归档处理, 其过程比较傲复杂, 归档后文件文 .Archive 文件, 是一个二进制二年间, 无法查看, 需要用NSUnArchive 解档操作才能查看

//获取路径的方法

- (NSString *)getFilePath {

    //获取documents 文件加路径

    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

    //拼接存储文件的路径

    NSString *filePath = [path stringByAppendingPathComponent:@"zhang.txt"];

    return filePath;

}

//1.创建归档工具对象

    NSMutableData *myData = [NSMutableData data];

    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:myData];

//2.开始归档

    [archiver encodeObject:contact forKey:@"tao"];

    //3.结束归档

    [archiver finishEncoding];

    //4.内存释放

    //5.data 写入文件

    [myData writeToFile:[self getFilePath] atomically:YES];

//反归档

//1.从本地读数据

    NSData *data = [NSData dataWithContentsOfFile:[self getFilePath]];

    //2.创建反归档工具

    NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data];

    //3.开展反归档

    Contact *contact = [unarchiver decodeObjectForKey:@"tao"];

    //4.反归档结束

    [unarchiver finishDecoding];

    //释放

三.利用sqlite, 建议不直接操作SQLite库,而是采用一些第三方库操作数据库. 例如 fmdb

四.CoreData对数据进行持久化保存, 本质上是使用SQLite保存数据,但是它不需要编写任何SQL语句。

 

iOS 数据持久化的方式总结

原文:http://www.cnblogs.com/tapple/p/4892832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!