Camera 无法获取相机捕获的图像的文件名

Camera 无法获取相机捕获的图像的文件名,camera,uiimagepickercontroller,alassetslibrary,ios8.1,Camera,Uiimagepickercontroller,Alassetslibrary,Ios8.1,我正在尝试建立一个应用程序,在这个应用程序中,我可以用相机捕捉图像并保存到gallery。但我无法获取图像的文件名。若我从相机卷中选择图像,那个么我可以获取所选图像的文件名。但当我在应用程序中使用相机拍摄图像时,它会返回文件名“null”。这是我使用UIImagePickerController -(void)imagePickerController:(UIImagePickerController*)选取器未使用信息完成PickingMediaWithInfo:(NSDictionary*)

我正在尝试建立一个应用程序,在这个应用程序中,我可以用相机捕捉图像并保存到gallery。但我无法获取图像的文件名。若我从相机卷中选择图像,那个么我可以获取所选图像的文件名。但当我在应用程序中使用相机拍摄图像时,它会返回文件名“
null
”。这是我使用
UIImagePickerController

-(void)imagePickerController:(UIImagePickerController*)选取器未使用信息完成PickingMediaWithInfo:(NSDictionary*)信息
{
UIImage*chosenImage=[self-scaleAndRotateImage:[info-valueForKey:UIImagePickerController原始图像]];
NSString*mediaType=info[UIIMAGEPICKERCONTROLLEMEDIATYPE];
self.userProfileImage.image=chosenImage;
if([mediaType IsequalString:(NSString*)kUTTypeImage]){
UIImage*image=info[UIImagePickerController原始图像];
if(新媒体)
UIImageWriteToSavedPhotosAlbum(图像,
自己
@选择器(图像:finishedSavingWithError:contextInfo:),
零);
}
imageRotation=[NSString stringWithFormat:@“%f%f%f”、acos(self.userProfileImage.transform.a)、asin(self.userProfileImage.transform.b)、atan2(self.userProfileImage.transform.b、self.userProfileImage.transform.a)];
CGFloat angle=[(NSNumber*)[self.userProfileImage valueForKeyPath:@“layer.transform.rotation.z”]floatValue];
NSLog(@“%f”,角度);
NSURL*referenceURL=[info-objectForKey:UIImagePickerControllerReferenceURL];
AlassetLibrary*assetLibrary=[AlassetLibrary新建];
[assetLibrary assetForURL:referenceURL
结果块:^(ALAsset*资产){
ALAssetRepresentation*AssetRepresentation=[AssetDefaultRepresentation];
文件名=[assetRep文件名];
NSLog(@“文件名=%@”,文件名);
}
故障块:^(N错误*错误){
NSLog(@“%@”,错误);
}];
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
[[UIApplication sharedApplication]setStatusBarHidden:是];
[picker DismissionViewControllerInitiated:是完成:无];
imageChanged=TRUE;
}
这段代码用来保存捕获的图像

-(void)image:(UIImage*)image未完成保存错误:(NSError*)错误contextInfo:(void*)contextInfo{
UIAlertView*警报;
//NSLog(@“图像:%@”,图像);
如果(错误){
警报=[[UIAlertView alloc]initWithTitle:@“错误!”
消息:[错误本地化描述]
代表:无
取消按钮:@“确定”
其他按钮:无];
[警报显示];
}
}
我被困在了一个问题上,那就是如何获取捕获图像的文件名。
我在代码中做错了什么?请告诉我任何更正或解决方案。任何帮助都将不胜感激。提前感谢

以下是如何获取使用UIImagePickerController拾取的文件、视频或照片的文件名:

-(void)imagePickerController:(UIImagePickerController*)选取器未使用信息完成PickingMediaWithInfo:(NSDictionary*)信息{
@试一试{
self.myinfo=info;
DDLogDebug(@“MediaListView-关闭摄像头ui…”);
[self.cameraUI dismissViewControllerAnimated:是完成:无];
mediaURL=[info objectForKey:UIImagePickerControllerMediaURL];
DDLogDebug(@“MediaListView-媒体url=%@”,mediaURL);
NSString*mediaType=[info objectForKey:UIImagePickerControllerMediaType];
DDLogDebug(@“MediaListView-选定的mediaType:%@”,mediaType);
//这是一个视频
if(mediaURL){
DDLogDebug(@“MediaListView-这是一个视频”);
//刚刚录制的视频
if(self.source==UIImagePickerControllerSourceTypeCamera){
DDLogDebug(@“MediaListView-这是一个新视频,保存到相册中…”);
//在获取视频名称之前保存视频
ALAssetsLibrary*库=[ALAssetsLibrary新建];
[library writeVideoAtPathToSavedPhotosAlbum:mediaURL完成块:^(NSURL*assetURL,NSError*error){
如果(错误){
DDLogDebug(@“MediaListView-无法将照片保存到相册…”);
}否则{
DDLogDebug(@“MediaListView-视频保存到相册…”);
//视频已保存,我们可以获取其名称
[self-getNameFromUrl:assetURL];
}
}];
}
否则{
DDLogDebug(@“MediaListView-这是一个现有视频,正在获取名称…”);
//获取视频名称
[self-getNameFromUrl:[info-objectForKey:UIImagePickerController参考URL];
}
}
//这是一张照片
否则{
DDLogDebug(@“MediaListView-这是一张照片…”);
self.originalImage=(UIImage*)[info-objectForKey:UIImagePickerControllerOriginalImage];
//刚刚拍的照片
if(self.source==UIImagePickerControllerSourceTypeCamera){
DDLogDebug(@“MediaListView-这是一张新照片,正在保存到照片相册…”);
//将照片保存到相册
ALAssetsLibrary*库=[ALAssetsLibrary新建];
[library writeImageToSavedPhotosAlbum:[self.originalImage CGImage]
方向:(ALAssetOrientation)[自我原创图像方向]
completionBlock:^(NSURL*assetURL,NSError*error){
如果(错误){
DDLogDebug