一、应用沙盒结构分析
每个ios应用都有自己的应用沙盒(处于文件系统目录内),与其他文件系统隔离。
- Documents:保存应用运行时声称的需要持久化的数据,iTunes同步设备时会备份该目录
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
- tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录
NSString *tmpPath = NSTemporaryDirectory();
- Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备不会备份该目录,一般存储体积大,不需要备份的非重要数据
NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
- Library/Preference:保存应用的所有偏好设置,ios的setting(设置)应用会在该目录中查找应用的设置信息,iTunes同步设备时回备份该目录
二、plist数据读写
plist文件全名是:Property List,是属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件,文件采用的是xml格式的。
1、获取沙盒存储路径
//1.1获取沙盒存储路径
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
//1.2获取存储文件路径
NSString *plistPath = [doc stringByAppendingPathComponent:@"data.plist"];
2、建立数据并写入文件
NSArray *data = @{"aaa",@"bbb"};
[data writeToFile:self.plistPath atomically:YES];
3、读取并输出数据
NSArray *array = [NSArray arrayWithContentsOfFile:self.plistPath];
NSLog(@"%@",array);