如何使用 ImagePicker 获取图像名称?我得到了图像名称,但它只在模拟器中工作,而不是在实际设备中工作
Posted
技术标签:
【中文标题】如何使用 ImagePicker 获取图像名称?我得到了图像名称,但它只在模拟器中工作,而不是在实际设备中工作【英文标题】:How to get image name using UIImagePicker? I got image name but its working only in simulators not in actual devices 【发布时间】:2019-01-08 09:47:41 【问题描述】:我需要从照片库中选择图片名称。我正在使用 UIImagePicker 并且我得到了图像名称,但它只在模拟器中工作,而不是在实际设备中工作。
【问题讨论】:
对于像这个***.com/questions/24625687/…这样的问题,这里应该有很多答案。 我尝试了许多在堆栈溢出中发布的答案。但这仅适用于模拟器。 您是否允许在您的应用中使用照片?您需要在 info.plist 文件中添加此键“Privacy - Camera Usage Description”和一条消息,如果解决您的问题,请告诉我 已经添加了 【参考方案1】:请试试这个: 在你的 UIImagePickerControllerDelegate 中:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
if let asset = info[UIImagePickerControllerPHAsset] as? PHAsset
let assetResources = PHAssetResource.assetResources(for: asset)
print(assetResources.first!.originalFilename)
dismiss(animated: true, completion: nil)
它可能会帮助你。谢谢。
【讨论】:
我试过这段代码。但它只在模拟器中工作..在实际设备中获得空值。我不知道为什么 修改答案请试试这个 我使用的是 ios 12,但在 dic "info" 中没有看到 "UIImagePickerControllerPHAsset"。 @AMP 请点击我答案的向上箭头,以便其他用户获得帮助。【参考方案2】:这是完美的工作代码:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
picker.dismissMe();
if let picImgURL = info[UIImagePickerControllerImageURL] as? URL
let imageName = picImgURL.lastPathComponent
【讨论】:
以上是关于如何使用 ImagePicker 获取图像名称?我得到了图像名称,但它只在模拟器中工作,而不是在实际设备中工作的主要内容,如果未能解决你的问题,请参考以下文章
无法使用模拟器从 iOS 中的 ImagePicker 获取图像路径和图像?
如何在拍照之前使用 imagepicker 获取相机视图的大小
如何正确地将 ImagePicker 插入标题中的图像? SwiftUI