写在前方 笔者会用到之前文章的方法(自己封装下)
一、plist是Xcode的一种资源包,可以用来作为存储工具,是一种很直观的可视化文件。它是按一级级节点组成的,根节点是个Array或者Dictionary。
二、支持的存储数据类型
NSArray(含NSMutableArray)、NSDictionary(含NSMutableDictionary)、NSData(含NSMutableData)、NSString(含NSMutableString)、NSNumber、NSDate、BOOL。同样,存储的对象全是不可变的。
三、创建方式
1、工程里手动创建(只读的,不能用代码写入),
如:
2、沙盒中创建(可读可写)
如:
四、相关代码
(一)、工程里手动创建的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];