一.属性列表, 可以通过NSArray, NSDictionary等等的writeToFile 方法写入一个plist 文件中, 持久保持属性
沙盒中的文件夹: 1.Documents : 存储长久保存的数据
2.Library :
存放缓存文件, 比如视频, 音频, 图片, 小说等等
存储偏好设置, 比如: 应用程序是否是第一次运行, 保存用户名和密码,
存储临时文件, 比如下载的包, 解压后直接删除
数据持久化方式:
最简单) NSUserDefaults; 只适合存储少量数据, 比如账号, 密码;
读写文件, 只支持八种数据, NSString; NSArray, NSDictionary ,二进制 --- NSData 以及各自的可变子类
VIP
对于数组, 字典大容器deng, 想要实现文件读写, 必须要保证文件中的元素也必须是 数组, 字符串, 字典, 二进制数据等数据类型之一;
二.归档, 通过 Archive 对象对数据你进行归档处理, 其过程比较傲复杂, 归档后文件文 .Archive 文件, 是一个二进制二年间, 无法查看, 需要用NSUnArchive 解档操作才能查看
//获取路径的方法
- (NSString *)getFilePath {
//获取documents 文件加路径
NSStringNSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
//拼接存储文件的路径
NSStringstringByAppendingPathComponent:@"zhang.txt"];
return filePath;
}
//1.创建归档工具对象
NSMutableDataNSMutableDatadata];
NSKeyedArchiverNSKeyedArchiveralloc]initForWritingWithMutableData:myData];
//2.开始归档
encodeObject:contact forKey:@"tao"];
//3.结束归档
finishEncoding];
//4.内存释放
//5.data 写入文件
writeToFile:[selfgetFilePath] atomically:YES];
//反归档
//1.从本地读数据
NSDataNSDatadataWithContentsOfFile:[selfgetFilePath]];
//2.创建反归档工具
NSKeyedUnarchiverNSKeyedUnarchiveralloc]initForReadingWithData:data];
//3.开展反归档
ContactdecodeObjectForKey:@"tao"];
//4.反归档结束
finishDecoding];
//释放
三.利用sqlite, 建议不直接操作SQLite库,而是采用一些第三方库操作数据库. 例如 fmdb
四.CoreData对数据进行持久化保存, 本质上是使用SQLite保存数据,但是它不需要编写任何SQL语句。