Objc将数据写入iOS真机的plist文件里

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;)


怎样写入模拟器的博文在 这里

可是这对真机无论用,由于在真机环境下,App在Xcode中的Resources文件夹都是不可写的.所以我们要在App第一次执行时将须要改动且长久保存的数据放到Document文件夹下:

//在Document文件夹中初始化地图数据文件,由于该文件夹下文件可写且能够持久保存
+(void)initDataFile{
    NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,
                                                            YES)[0];
    //取得目标文件路径
    sMapInfoInDocPath = [docPath stringByAppendingPathComponent:@"MapInfo.plist"];
    NSFileManager *fm = [NSFileManager defaultManager];
    //假设目标文件不存在说明是App第一次执行,须要将相关可改动数据文件拷贝至目标路径.
    if (![fm fileExistsAtPath:sMapInfoInDocPath]) {
        NSError *error = nil;
        //取得源文件路径
        NSString *srcPath = [[NSBundle mainBundle] pathForResource:MAP_INFO_FILE ofType:@"plist"];
        if (![fm copyItemAtPath:srcPath toPath:sMapInfoInDocPath error:&error]) {
            CCLOG(@"ERR:copy file failed:%@",error);
        }
    }
}

注意当删除一个App后,该App先前存放在Document文件夹下的全部文件都会被删除.

posted @ 2017-08-14 20:49  wzzkaifa  阅读(182)  评论(0编辑  收藏  举报