我有代码工作,让用户选择一个现有的图像,让它在屏幕上的UIView中很好地显示。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imageView.image = chosenImage;
NSLog(@"image is%@",chosenImage);
[picker dismissViewControllerAnimated:YES completion:NULL];
}
如何获取文件名以保留以供将来参考? chosenImage只显示了一堆关于该文件的元数据。
谢谢。
答案 0 :(得分:3)
如下所示,您无法使用当前现有的API从UIImagePickerControllerDelegate
获取所选图像的名称。
以下是UIImagePickerControllerDelegate的可用Editing Information Keys:
NSString *const UIImagePickerControllerMediaType;
NSString *const UIImagePickerControllerOriginalImage;
NSString *const UIImagePickerControllerEditedImage;
NSString *const UIImagePickerControllerCropRect;
NSString *const UIImagePickerControllerMediaURL;
NSString *const UIImagePickerControllerReferenceURL;
NSString *const UIImagePickerControllerMediaMetadata;
但是,您可能希望使用AssetsLibrary.framework
来获取由照片应用程序管理的图片的名称:
@import AssetsLibrary;
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:info[UIImagePickerControllerReferenceURL]
resultBlock:^(ALAsset *fileAsset) {
NSLog(@"%@", [[fileAsset defaultRepresentation] filename]);
} failureBlock:nil];
}
答案 1 :(得分:0)
在该方法的开头尝试NSLog(@"%@",info)并查看该名称是否在字典中。