iOS 开发之 - Plist文件的基本操作

 

plist文件是一个轻量级的数据库,用于存放一些比较小的数据。下面是对plist的基本操作。

 

 新建一个Plist文件

 

我这里是新建的一个以整体为Array,item是字典的plist文件。

如图:

 

一般开发中,如果是要操作plist文件的话。都是要把plist文件放到沙盒(Document) 目录下的

先得到资源目录:

//得到资源目录(新建的plist文件)
- (NSString *)getDataSourcePath:(NSString *) sourceName andType:(NSString *) fileType{
    NSString *path = [[NSBundle mainBundle] pathForResource:sourceName ofType:fileType];
    return path;
}

得到沙盒 (Document)

//得到documents目录
- (NSString *)getDocumentPath:(NSString *) fileName{
    //两种获取document路径的方式
    //    NSString *documents = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    
    NSString *documents = [paths objectAtIndex:0];
    NSString *path = [documents stringByAppendingPathComponent:fileName];
    
    return path;
}

 

重点:

 

//得到沙盒plist文件

 

  NSString *documentPath = [self getDocumentPath:@"szPlistDemo.plist"];

 

//向该Document目录添加数据  1 : 直接写的方式,  2 : 将资源文件 复制到 documents目录下

 

第一种方法:

//    NSError *error;
//    if ([plistPath writeToFile:documentPath atomically:YES encoding:NSUTF8StringEncoding error:&error]) {
//        NSLog(@"file write success . ");
//    }else{
//        NSLog(@"error  = %@",error);
//    }

第二种:

 // 2 :复制到 documents目录下
    NSFileManager *manager = [NSFileManager defaultManager];
    NSError *error;
    if ([manager fileExistsAtPath:documentPath]) {
        NSLog(@"file is exists");
    }else{
        if ([manager copyItemAtPath:plistPath toPath:documentPath error:&error]) {
            NSLog(@"file is not exists, copy success!");
        }else{
            NSLog(@"error = %@",error);
            return;
        }
    }

 

//像plist中写入数据

 //得到资源目录的数据

    NSMutableArray *documentData = [[NSMutableArray alloc] initWithContentsOfFile:documentPath];
    NSLog(@"documentData = %@",documentData);
    
    NSDictionary *dic = @{@"age":@"25",@"phone_num":@"1328820394"};
 
    [documentData addObject:dic];
  //写入文件
    [documentData writeToFile:documentPath atomically:YES];
 

//删除plist文件

这里我用了一个按钮,点击按钮删除plist文件

NSError *error;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if ([fileManager removeItemAtPath:documentPath error:&error]) {
        NSLog(@"remove success!");
    }else{
        NSLog(@"error = %@",error);
    }

 

posted @ 2014-08-14 14:16  Somnus_W  阅读(2048)  评论(0编辑  收藏  举报