iOS 工程下的plist文件只能读不能写的解决方案

2018-10-17  本文已影响0人  最强的小强

今天写项目的时候,自己在工程下新建了一个plist文件,后来有需求要给plist里面写数据,可是写入失败了.... 数组里面写进了内容,将数组写入文件的时候执行
[array writeToFile:filePatch atomically:YES];失败....

切记:工程里,只可以读取不可以写入

解决方案:(可能有更好的解决方案,还没找到...)
 // copy工程下的plist文件到Documents目录下,再对copy成功的文件进行读写就ok了
    NSString *targetPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"joke.plist"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL Exists = [fileManager fileExistsAtPath:targetPath];
    if(!Exists){
        NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"joke" ofType:@".plist"];
        NSError *error;
        BOOL success = [fileManager copyItemAtPath:plistPath toPath: targetPath error:&error];
        if(!success){
            NSLog(@"copy失败");
        }
    }
    NSMutableArray *jokeArray = [NSMutableArray arrayWithContentsOfFile:path];
    NSDictionary *dict = @{@"content":self.contentField.text};
    [jokeArray addObject:dict];
    if([jokeArray writeToFile:targetPath atomically:YES]) {
        NSLog(@"%@", dict);
    }
    [jokeArray writeToFile:filePatch atomically:YES];
上一篇下一篇

猜你喜欢

热点阅读