iOS 数据存储方式(XML属性列表-plist)
来源:互联网 发布:大数据预测彩票 编辑:程序博客网 时间:2024/05/17 02:51
一. iOS 开发中的数据存储有以下几种方式:
1.plist (XML属性列表归档)
2.偏好设置
3.NSKeydeArchiver 归档 (存储自定义对象/模型)
4.SQLite3 (数据库, 关系型数据库, 不能直接存储对象,要编写一些数据库的语句,将对象拆开存储)
5.CoreData (对象型的数据库, 把内部环节屏蔽)
二.这些数据都存储应用沙盒中
每个iOS应用都有⾃己的应⽤沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应⽤必须待在⾃己的沙盒里,其他应用不能访问该沙盒.
可以通过 NSLog(@"%@",NSHomeDirectory());打印出应用的沙盒地址,然后在 Finder 中前往文件夹进行查看,文件夹目录如下图:
三.应用沙盒结构分析
应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件
Documents:保存应⽤运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录
tmp:保存应⽤运行时所需的临时数据,使⽤完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时 不会备份该目录
Library/Caches:保存应用运行时⽣成的需要持久化的数据,iTunes同步设备时不会备份该目录。⼀一般存储体积大、不需要备份的非重要数据
Library/Preference:保存应用的所有偏好设置,iOS的Settings(设置) 应⽤会在该⺫录中查找应⽤的设置信息。iTunes同步设备时会备份该目录
四.属性列表
● 属性列表是一种XML格式的文件,拓展名为plist
● 如果对象是NSString、NSDictionary、NSArray、NSData、 NSNumber等类型,就可以使用writeToFile:atomically:⽅法 直接将对象写到属性列表文件中
// 存数据
- (IBAction)save:(id)sender
{
// dict---------------------------存
// 获取doc的路径
NSString* docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject];
// 文件的路径
NSString* filePath = [docPathstringByAppendingPathComponent:@"xx.plist"];
// 自定义的对象不能保存到plist中
Person *p = [[Person alloc] init];
p.name =@"lnj";
NSDictionary* dict = @{ @"key" : @"value",
@"123" : @"321"};
[dict writeToFile:filePath atomically:YES]; // 线程安全的
/*
plist只能存储系统自带的一些常规的类,也就是有writeToFile方法的对象才可以使用plist保存数据
字符串/字典/数据/NSNumber/NSData ...
*/
// array---------------------------存
// //获取doc的路径
// NSString* docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
// //文件的路径
// NSString* filePath = [docPath stringByAppendingPathComponent:@"xx.plist"];
//
// NSArray* array = @[ @"德莱厄斯", @"德玛西亚", @"123" ];
// // 1.如果做plist存储 :有write to file
// [array writeToFile:filePath atomically:YES];
}
// 取数据
- (IBAction)read:(id)sender
{
// dict---------------------------取
// 获取doc路径
NSString* docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject];
// 文件的路径
NSString* filePath = [docPathstringByAppendingPathComponent:@"xx.plist"];
NSDictionary* dict = [NSDictionarydictionaryWithContentsOfFile:filePath];
NSLog(@"%@", dict);
// array---------------------------取
// //获取doc的路径
// NSString* docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
// //文件的路径
// NSString* filePath = [docPath stringByAppendingPathComponent:@"xx.plist"];
//
// NSArray* array = [NSArray arrayWithContentsOfFile:filePath];
// NSLog(@"%@", array);
}
- ios应用数据存储方式(XML属性列表-plist)
- iOS 数据存储方式(XML属性列表-plist)
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
- iOS开发UI高级—11ios应用数据存储方式(XML属性列表-plist)
- IOS学习之ios应用数据存储方式(XML属性列表-plist)
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
- ios开发UI篇-iOS应用数据存储方式(XML属性列表 -plist)e二
- iOS 基础篇9—ios应用数据存储方式(XML属性列表-plist)
- 应用数据存储方式(XML属性列表-plist)
- UI进阶第六发:ios应用数据存储方式(XML属性列表-plist)
- iOS 数据存储方式(XML属性列表-归档)
- 【深入浅出ios开发】数据存储-----XML属性列表(plist)归档
- 【深入浅出ios开发】数据存储-----XML属性列表(plist)归档
- [数据存储]属性列表plist
- ios应用数据存储方式(plist存储)
- ios-day12-02(ios开发中数据存储之属性列表归档(plist))
- Plist—ios应用数据存储方式
- OC数据储存本地(二)-----iOS----属性列表plist 写如何存储和读取
- 屏幕截图实现
- codeforces 670D1 Magic Powder - 1
- 1017 Problem Q
- KMP,深入讲解next数组的求解
- POJ 2392-Space Elevator(多重部分和-多重背包)
- iOS 数据存储方式(XML属性列表-plist)
- 九度OJ 1000:计算A+B
- BZOJ2780——[Spoj]8093 Sevenk Love Oimaster
- Light oj 1387 - Setu【字符串】
- CRT与Windows的关系【转】
- 16、在JavaScript中,命名的一些规范
- 关于hadoop编程中dfs.replication与datanode数量的问题
- 一次有趣的telnet,发邮件
- python--文件操作之遍历目录