在plist文件中增删改查

时间:2021-02-05 20:18:53

  plist文件是一种轻量级大数据存储方式,它的全名为PropertyList,即属性列表文件,它是一种用来存储串行化后的对象的文件。Plist文件是以key-value的方式来存取数据的。

     创建plist文件可通过xcode在工程中创建,也可通过代码来创建:

     1.plist文件的创建:

 

NSFileManager *manager = [NSFileManager defaultManager]; //找到沙盒路径下document所在的文件路径
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]; //创建user文件夹路径
    NSString *directorypath = [path stringByAppendingPathComponent:@"user"]; //创建文件夹
    [manager createDirectoryAtPath:directorypath withIntermediateDirectories:false attributes:nil error:nil]; //判断文件夹是否存在
 [self exictPath:directorypath]; //删除文件夹
 [manager removeItemAtPath:directorypath error:nil]; [self exictPath:directorypath]; //在document路径下创建plist文件路径
   NSString *filepath = [path stringByAppendingPathComponent:@"moxue.plist"]; //创建文件
    [manager createFileAtPath:filepath contents:nil attributes:nil];//如果需要修改文件的相关属性,可以通过NSFileManager得到文件的所有属性,然后设置相应的attributes值来更改,attributes值为字典类型 // NSLog(@"%@",[manager attributesOfItemAtPath:filepath error:nil]);
 [self exictPath:filepath]; //移除文件
 [manager removeItemAtPath:filepath error:nil]; [self exictPath:filepath];

 

       2.向plist文件添加数据

 //创建可变字典,在其中添加数据
 NSMutableDictionary *mainDict = [[NSMutableDictionary alloc]init]; //在rootdict下创建一个子字典,并添加数据
    NSMutableDictionary *dict = [[NSMutableDictionary alloc]init]; [dict setObject:@"liu" forKey:@"one"]; [dict setObject:@"zhi" forKey:@"two"]; //将创建的子字典添加到向plist传输数据的字典
    [mainDict setValue:dict forKey:@"item1"]; //通过mainDict向plist写入数据
 [mainDict writeToFile:filepath atomically:YES]; //插入第二条子字典
    NSMutableDictionary *dict11 = [[NSMutableDictionary alloc]init]; [dict11 setObject:@"liu" forKey:@"one"]; [dict11 setObject:@"zhi" forKey:@"two"]; [mainDict setValue:dict11 forKey:@"item2"]; [mainDict writeToFile:filepath atomically:YES];

      3.在plist文件中删除数据

//在plist列表中移除第二个字典
    [mainDict removeObjectForKey:@"item2"]; [mainDict writeToFile:filepath atomically:YES];

     4.查看plist文件中的数据

//得到plist列表中所有的数据并打印
    NSDictionary *lookdict = [NSDictionary dictionaryWithContentsOfFile:filepath]; NSLog(@"lookdict == %@",lookdict);