寫在前方 筆者會用到之前文章的方法(自己封裝下)
一、plist是Xcode的一種資源包,可以用來作為存儲工具,是一種很直觀的可視化文件。它是按一級級節點組成的,根節點是個Array或者Dictionary。
0.png
二、支持的存儲數據類型
NSArray(含NSMutableArray)、NSDictionary(含NSMutableDictionary)、NSData(含NSMutableData)、NSString(含NSMutableString)、NSNumber、NSDate、BOOL。同樣,存儲的對象全是不可變的。
三、創建方式
1、工程里手動創建(只讀的,不能用代碼寫入),
如:
image.png
2、沙盒中創建(可讀可寫)
如:
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];