我正在开发一种应用程序,它是一种录像机,但我遇到了问题,而coredata可以支持保存迁移数据(安装uppdate,重新安装程序),应用程序文件保存到文档文件夹的应用程序被删除。我使用网络服务处理某些图片,但用户录制的所有视频都会丢失。
有没有办法在迁移时保留应用程序本地文件(在文档文件夹中)(例如从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;
}