美文网首页
ios数据持久化 - plist文件(属性列表)

ios数据持久化 - plist文件(属性列表)

作者: 一个记事本 | 来源:发表于2017-07-27 17:13 被阅读35次

******  数据持久化常用的五种方式  ******

1.plist文件(属性列表)

2.preference(偏好设置)

3.NSKeyedArchiver(归档)

4.SQLite 3

5.CoreData

*---- 沙盒路径下的三个文件(Documents/Library/tmp) -----*

/**** "应用程序包": 这里面存放的是应用程序的源文件,包括资源文件和可执行文件 ****/

NSString *path = [[NSBundle mainBundle] bundlePath];

/*** Documents: 最常用的目录,iTunes同步该应用时会同步此文件夹中的内容,适合存储重要数据 ***/

NSString *Documentspath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;

/*** Library/Caches: iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据 ***/

/** Library/Preferences: iTunes同步该应用时会同步此文件夹中的内容,通常保存应用的设置信息 **/

NSString *Cachespath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;

/** tmp: iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存应用中的一些临时文件,用完就删除 **/

NSString *Preferencespath = NSTemporaryDirectory();

1.plist文件(属性列表)

****** 手动新建一个 Property List 文件 ******

可以手动添加各类数据

NSString *plistPath = [[NSBundle mainBundle]pathForResource:@"Property List" ofType:@"plist"];

NSMutableDictionary *dataDic = [[NSMutableDictionary alloc]initWithContentsOfFile:plistPath];

NSLog(@"%@",dataDic);//直接打印刚刚写入的数据

******  代码创建plist文件 ******

//获取路径对象

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *path = [pathArray objectAtIndex:0];

//获取文件的完整路径

NSString *filePatch = [path stringByAppendingPathComponent:@"column.plist"];

NSLog(@"%@",filePatch);//打印创建好的plist文件路径

//写入数据到plist文件

NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"小小虎",@"name",@"5",@"age",@"boy",@"sex",nil];

NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"小小兮",@"name",@"6",@"age",@"girl",@"sex",nil];

//将上面2个小字典保存到大字典里面

NSMutableDictionary *dataDic = [NSMutableDictionary dictionary];

[dataDic setObject:dic1 forKey:@"一年级"];

[dataDic setObject:dic2 forKey:@"二年级"];

//写入plist里面

[dataDic writeToFile:filePatch atomically:YES];

//读取plist文件的内容

NSMutableDictionary *dataDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:filePatch];

NSLog(@"---plist一开始保存时候的内容---%@",dataDictionary);

******  plist文件的增删改查 ******

//修改字典里面的内容,先按照结构取到你想修改内容的小字典

NSMutableDictionary *dd = [dataDictionary objectForKey:@"一年级"];

[dd setObject:@"111111" forKey:@"name"];    //修改

[dd setObject:@"222222" forKey:@"content"]; //增加

[dd removeObjectForKey:@"age"];            //删除

//注意bool值的修改与一般值修改不一样,是需要nsnumber作为中间转换

//修改成功以后,将这个小字典重新添加到大字典里面

[dataDictionary setObject:dd forKey:@"一年级"];

[dataDictionary writeToFile:filePatch atomically:YES];

NSLog(@"---plist做过操作之后的字典里面内容---%@",dataDictionary);

****** 清除plist文件 ******

//清除plist文件,可以根据我上面讲的方式进去本地查看plist文件是否被清除

NSFileManager *fileMger = [NSFileManager defaultManager];

NSString *xiaoXiPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"column.plist"];

//如果文件路径存在的话

BOOL bRet = [fileMger fileExistsAtPath:xiaoXiPath];

NSLog(@"清除plist文件=%d",bRet);

if (bRet) {

NSError *err;

BOOL isDelete = [fileMger removeItemAtPath:xiaoXiPath error:&err];

//已清除,打印的文件路径打不到了 - xiaoXiPath

NSLog(@"清除plist文件的路径%@=%d",xiaoXiPath,isDelete);

}

相关文章

  • iOS基础--数据本地化-归解档-整理总结(2)

    iOS数据持久化方法: 属性列表 (plist文件), 用 NSUserDefault 归档 (NSKeyedAr...

  • iOS 归档和解档

    iOS的几种数据持久化方案 plist文件(属性列表) preference(偏好设置) NSKeyedArchi...

  • Lesson 0-3 Objective-C basic

    15. 数据持久化 数据持久化方式: plist:属性列表plist 文件的常见操作 NSUserDefaults...

  • CoreData的使用 之 未勾选CoreData

    * iOS有多种数据持久化得方式 plist文件(属性列表) preference(偏好设置,NSUserDefa...

  • 数据持久化方式

    数据持久化方式 ios中的数据持久化方式,基本上有以下四种:属性列表(plist文件)、对象归档(NSKeyedA...

  • ios的数据持久化

    一、what 数据持久化,就是数据存储。 二、iOS数据存储的方式 有5中方式 plist文件(XML属性列表) ...

  • iOS数据持久化

    iOS数据持久化 iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置)...

  • iOS数据持久化

    ** iOS下数据持久化常用的几种方式:** NSUserDefaults plist(属性列表) NSKeyed...

  • iOS数据持久化方式

    iOS数据持久化方式 文件 归档(NSKeyedArchiver) 属性列表(NSUserDefaults) 数据...

  • 数据持久化

    数据持久化 数据持久化的方式有四种:属性列表(plist文件)/偏好设置/对象归档/SQLite数据库/Core ...

网友评论

      本文标题:ios数据持久化 - plist文件(属性列表)

      本文链接:https://www.haomeiwen.com/subject/zkzzkxtx.html