Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOS应用程序文件迁移_Ios_Migration - Fatal编程技术网

IOS应用程序文件迁移

IOS应用程序文件迁移,ios,migration,Ios,Migration,我正在开发一个类似于录像机的应用程序,但我面临一个问题,coredata可以支持在迁移时保留数据(安装Update,重新安装程序),保存到应用程序文档文件夹中的应用程序文件会被删除。我正在为一些图像使用Web服务,但是用户录制的所有视频都丢失了 有没有办法在迁移时保留应用程序本地文件(在文档文件夹中)(比如从xcode重新启动应用程序而不在手机上删除它) 我说的是这样的路径: filePath NSString * @"/var/mobile/Containers/Data/Applic

我正在开发一个类似于录像机的应用程序,但我面临一个问题,coredata可以支持在迁移时保留数据(安装Update,重新安装程序),保存到应用程序文档文件夹中的应用程序文件会被删除。我正在为一些图像使用Web服务,但是用户录制的所有视频都丢失了

有没有办法在迁移时保留应用程序本地文件(在文档文件夹中)(比如从xcode重新启动应用程序而不在手机上删除它)

我说的是这样的路径:

filePath    NSString *  @"/var/mobile/Containers/Data/Application/7FB440BB-76DD-49C6-B5DD-AA9D26A86C51/Documents/dataImage/image_1_maquette_miniature.jpg"  0x000000015c528520
编辑: 我发现,当我重建我的应用程序时:

/var/mobile/Containers/Data/Application/509E8B5D-A3C4-4D90-809B-47159AC60542/Documents/dataImage/image_1_gabarit_masque.png

/var/mobile/Containers/Data/Application/660EF541-CDD0-439C-BCAB-B7FE4371799A/Documents/dataImage/image_1_gabarit_masque.png
UUID发生变化,因此下面是我编写文件的代码:

NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

if(![self createFolderIfNoExists:@"dataImage"]) {
    fileManager = nil;
    return nil;
}

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:
                                            [NSString stringWithFormat:@"dataImage/image_%d_%@.%@",objectID,assetTypeName,extension]];

if ([fileManager fileExistsAtPath:filePath] == YES) {
    [fileManager removeItemAtPath:filePath error:nil];
    NSLog(@"DELETE file exists %d",[fileManager fileExistsAtPath:filePath]);
}
if([imageData writeToFile:filePath atomically:NO] == NO) {
    NSLog(@"[Error] Create File %@ at %@", imageData,filePath);
    fileManager = nil;
    return nil;
}

文档目录中的文件在更新时被删除不是真的。是的,当你删除应用程序时,它们确实会被删除,但对于CoreData来说也是如此。因为CoreData数据库也保存在文档目录中。好吧,也许我遗漏了什么,当我重新启动(重新编译并启动)图像时,图像正在消失,所以我猜这与升级应用程序的行为不同。但我仍然不明白为什么图像会丢失。这一定是我的代码中的一些东西。我的意思是在Iphone上重建和启动时,coredata数据仍然在这里,但本地文件被重置。我从未见过这种情况发生,我经常在多个测试设备上重新编译和重新启动我的应用程序。我从来没有丢失过文档目录中的文件。只是不保存完整路径,只保存文档目录中的相对路径。