数据持久化方案二----plist

写在前方 笔者会用到之前文章的方法(自己封装下)

一、plist是Xcode的一种资源包,可以用来作为存储工具,是一种很直观的可视化文件。它是按一级级节点组成的,根节点是个Array或者Dictionary。

如:
数据持久化方案二----plist_第1张图片
0.png

二、支持的存储数据类型

NSArray(含NSMutableArray)、NSDictionary(含NSMutableDictionary)、NSData(含NSMutableData)、NSString(含NSMutableString)、NSNumber、NSDate、BOOL。同样,存储的对象全是不可变的。

三、创建方式
1、工程里手动创建(只读的,不能用代码写入),
如:


数据持久化方案二----plist_第2张图片
image.png

2、沙盒中创建(可读可写)
如:


数据持久化方案二----plist_第3张图片
image.png

四、相关代码
(一)、工程里手动创建的plist文件
1、存数据
按照需求,根据数组或者字段手动填入数据。

2、读文件

 NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"XLTest" ofType:@"plist”];

3、读数据
<1>、根节点是字典

 NSDictionary *aimDic = [NSDictionary dictionaryWithContentsOfFile:plistPath];
 NSLog(@"plist :%@",aimDic);

<2>、根节点是数组

 NSArray *aimArr = [NSArray arrayWithContentsOfFile:plistPath];
 NSLog(@"plist :%@",aimArr);

(二)、在沙盒里代码创建的plist文件
1、创建文件

NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *plistPath = [docPath stringByAppendingPathComponent:@"myFile/test.plist"];
//见"写在前方"
[XLFileManagerTool creatFileWithPath:plistPath];

2、存数据

NSMutableDictionary *rootDic = [NSMutableDictionary new];
rootDic[@"key1"] = @"name";
NSArray *ageArr = @[@1, @2, @YES];
rootDic[@"key2"] = ageArr;
[rootDic writeToFile:plistPath atomically:YES];

3、读文件数据
<1>、根节点是字典

 NSDictionary *aimDic = [NSDictionary dictionaryWithContentsOfFile:plistPath];
 NSLog(@"plist :%@",aimDic);

<2>、根节点是数组
NSArray *aimArr = [NSArray arrayWithContentsOfFile:plistPath];
NSLog(@"plist :%@",aimArr);

4、修改数据
根据节点,按需求,从根节点重写write。
如:

NSArray *aimArr = @[@1, @2];
[aimArr writeToFile:plistPath atomically:YES];

5、删除数据
在对应节点删,然后重写放回节点,write进去
如在根节点清空根字典:

NSDictionary *aimD = @{};
[aimD writeToFile:plistPath atomically:YES];

6、删除plist
按照前文中的文件操作即可

如:

[XLFileManagerTool removeFileOfPath:plistPath];  

你可能感兴趣的:(数据持久化方案二----plist)