创建、写入、读取、删除 Plist 文件中数据

 代码创建Plist文件

 

  //找到第一个Documents文件夹所在的路径

   NSString *cachePatch = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES)[0];


   //把Procucts文件加入

    NSString *filePath = [cachePatchstringByAppendingPathComponent:@"products.plist"];


   //用NSMutableArray来接收plist里面的文件

    NSMutableArray *dataArray = [[NSMutableArrayalloc] initWithContentsOfFile:filePath];

    

    //判断plist存不存在,如果不存在,则创建这个array,否则,后面的文件写入不进去

    if (dataArray == nil) {

        dataArray = [[NSMutableArray alloc]init];

    }

    

    //添加数据

    NSMutableDictionary *dict = [NSMutableDictionarydictionary];

    [dict setObject:self.str forKey:@"deviceName"];

    [dataArray addObject:dict];


    //把数据写入Plist文件

    [dataArray writeToFile:filePath atomically:YES];




  读取Plist文件

(1)新建文件创建plist文件

  NSString *path = [[NSBundlemainBundle] pathForResource:@"tabBar"ofType:@"plist"];

       
    NSArray *itemsData = [[NSArray array]initWithContentsOfFile:path];




(2)代码创建的plist文件

NSString *cachePatch=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMaskYES)[0];

NSString *filePath = [cachePatchstringByAppendingPathComponent:@"products.plist"];

    

    //将plist文件中数据转换成数组形式输出(要预先知道plist中数据类型,否则无法读出)

 NSMutableArray *listArray  = [NSMutableArray arrayWithContentsOfFile:filePath];




删除Plist中某一条数据

NSString *cachePatch = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];

NSString *filePath = [cachePatch stringByAppendingPathComponent:@"products.plist"];

    

NSMutableArray *dataArra= [[NSMutableArray alloc] initWithContentsOfFile:filePath];

        

        [self.listArray removeObjectAtIndex:row];

        

        [self.listArray writeToFile:filePath atomically:YES];// 写入文件

        if (dataArray == nil) {

            dataArray = [[NSMutableArray alloc]init];

        }

        dataArray = [[NSMutableArray alloc] initWithContentsOfFile:filePath];// 重新获取


        [self.listArray removeAllObjects];

        [self.listArray addObjectsFromArray:dataArray];

        [self.collectionView reloadData];









你可能感兴趣的:(数据持久化)