NSData来自本地文件';s URL IOS

NSData来自本地文件';s URL IOS,ios,objective-c,video,nsdata,Ios,Objective C,Video,Nsdata,我尝试了我发现的一切,但没有得到好的结果 , 我的道路是 我的代码 日志结果 不保存文件的完整路径,只保存文件名。然后,在访问文件时,使用URLsForDirectory:inDomains:方法生成路径。这是因为应用程序目录可能已被更改,@rckoenes我尝试手动执行该路径,但确实找不到文件夹mobile知道可能是什么问题吗?这使我的应用程序成为一个视频录制库,因此似乎很难控制或修改该库。每次安装应用程序或更新新的应用程序GUID时,都会创建一个新的应用程序GUID。现有数据将移动到新目录。

我尝试了我发现的一切,但没有得到好的结果

,

我的道路是

我的代码

日志结果


不保存文件的完整路径,只保存文件名。然后,在访问文件时,使用
URLsForDirectory:inDomains:
方法生成路径。这是因为应用程序目录可能已被更改,@rckoenes我尝试手动执行该路径,但确实找不到文件夹
mobile
知道可能是什么问题吗?这使我的应用程序成为一个视频录制库,因此似乎很难控制或修改该库。每次安装应用程序或更新新的应用程序GUID时,都会创建一个新的应用程序GUID。现有数据将移动到新目录。因此,永远不要保存文件的完整路径,只保存与应用程序目录相对的路径,并在需要访问时生成路径。此外,在
temp
目录中保存数据也不是永久性的。如果系统存储空间不足,它将删除临时目录中的文件,而不通知您。谢谢。我使用
AVAssetExportSession
exportAsynchronouslyWithCompletionHandler
[NSFileManager defaultManager]contentsAtPath:path
修复此问题,不保存文件的完整路径,只保存文件名。然后,在访问文件时,使用
URLsForDirectory:inDomains:
方法生成路径。这是因为应用程序目录可能已被更改,@rckoenes我尝试手动执行该路径,但确实找不到文件夹
mobile
知道可能是什么问题吗?这使我的应用程序成为一个视频录制库,因此似乎很难控制或修改该库。每次安装应用程序或更新新的应用程序GUID时,都会创建一个新的应用程序GUID。现有数据将移动到新目录。因此,永远不要保存文件的完整路径,只保存与应用程序目录相对的路径,并在需要访问时生成路径。此外,在
temp
目录中保存数据也不是永久性的。如果系统存储空间不足,它将删除临时目录中的文件,而不通知您。谢谢。我使用
AVAssetExportSession
exportAsynchronouslyWithCompletionHandler
[NSFileManager defaultManager]contentsPath:path
recordSession.outputUrl ==> file:///private/var/mobile/Containers/Data/Application/4D4B0147-C52F-469C-AA0A-23D21AA50B5B/tmp/YYEQsKSLMwIl-SCVideo-Merged.mov
recordSession.outputUrl path ===> /private/var/mobile/Containers/Data/Application/4D4B0147-C52F-469C-AA0A-23D21AA50B5B/tmp/YYEQsKSLMwIl-SCVideo-Merged.mov
recordSession.outputUrl pathExtension ===> mov
NSString *path = [self.recordSession.outputUrl path];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
NSData *data2 = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
NSData *videoData = [NSData dataWithContentsOfFile:path];    
NSData *data3 = [[NSData alloc]initWithContentsOfURL:self.recordSession.outputUrl];

NSLog(@"data is ==> %@",data);
NSLog(@"data2 is ==> %@",data2);
NSLog(@"videoData is ==> %@",videoData);
NSLog(@"data3 ==> %@",data3);
data is ==> (null)
data2 is ==> (null)
videoData is ==> (null)
data3 ==> (null)