IOS应用程序文件迁移
我正在开发一个类似于录像机的应用程序,但我面临一个问题,coredata可以支持在迁移时保留数据(安装Update,重新安装程序),保存到应用程序文档文件夹中的应用程序文件会被删除。我正在为一些图像使用Web服务,但是用户录制的所有视频都丢失了 有没有办法在迁移时保留应用程序本地文件(在文档文件夹中)(比如从xcode重新启动应用程序而不在手机上删除它) 我说的是这样的路径:IOS应用程序文件迁移,ios,migration,Ios,Migration,我正在开发一个类似于录像机的应用程序,但我面临一个问题,coredata可以支持在迁移时保留数据(安装Update,重新安装程序),保存到应用程序文档文件夹中的应用程序文件会被删除。我正在为一些图像使用Web服务,但是用户录制的所有视频都丢失了 有没有办法在迁移时保留应用程序本地文件(在文档文件夹中)(比如从xcode重新启动应用程序而不在手机上删除它) 我说的是这样的路径: filePath NSString * @"/var/mobile/Containers/Data/Applic
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数据仍然在这里,但本地文件被重置。我从未见过这种情况发生,我经常在多个测试设备上重新编译和重新启动我的应用程序。我从来没有丢失过文档目录中的文件。只是不保存完整路径,只保存文档目录中的相对路径。