现在的位置: 首页 > 综合 > 正文

Iphone文件处理——使用属性列表(plist)

2014年01月29日 ⁄ 综合 ⁄ 共 1573字 ⁄ 字号 评论关闭

先在Resources文件夹下新建一个Movies.plist文件,然后往里面添加一些内容。

然后在viewDidLoad方法里面添加如下内容,这样就可以做到如果Documents文件夹下有Movies文件那么就将其内容打印出来,如果没有就修改Resources文件下的Movies文件,然后将其复制到Documents文件夹下:

- (void)viewDidLoad
    //下面这两句获取Documents文件夹路径
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDir = [path objectAtIndex:0];
    //添加一个Movies.plist文件在Documents文件夹下
    NSString *plistFileName = [documentsDir stringByAppendingPathComponent:@"Movies.plist"];
    if ([[NSFileManager defaultManager]fileExistsAtPath:plistFileName]) {//如果这个文件存在,那么就将文件内容打印出来
        NSDictionary *dict = [[NSDictionary alloc]initWithContentsOfFile:plistFileName];
        for (NSString *category in dict) {
            NSLog(@"%@",category);
            NSArray *titles = [dict valueForKey:category];
            for(NSString *title in titles){
                NSLog(@"%@",title);
            }
        }
        [dict release];
    }
    else{//如果文件不存在,就先修改Resources文件夹下的Movies.plist文件,在每一个array下添加以项,然后复制到Documents文件夹下
        NSString *plisPath  = [[NSBundle mainBundle] pathForResource:@"Movies" ofType:@"plist"];
        NSDictionary *dict = [[NSDictionary alloc]initWithContentsOfFile:plisPath];
        NSMutableDictionary *copyofdict = [dict mutableCopy];
        NSArray *categoriesArray = [[copyofdict allKeys]sortedArrayUsingSelector:@selector(compare:)];
        
        for(NSString *category in categoriesArray){
            NSArray *title = [dict valueForKey:category];
            NSMutableArray *mutabletitles = [title mutableCopy];
            [mutabletitles addObject:@"helijun"];
            [copyofdict setObject:mutabletitles forKey:category];
            [mutabletitles release];
        }
        NSString *fileName = [documentsDir stringByAppendingPathComponent:@"Movies.plist"];
        [copyofdict writeToFile:fileName atomically:YES];
        [dict release];
        [copyofdict release];
    }
  [super viewDidLoad];
}

抱歉!评论已关闭.