gpt4 book ai didi

ios - UIImagePickerControllerDelegate 从 iOS 11 中选取的图像获取日期

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:04 28 4
gpt4 key购买 nike

UIImagePickerControllerReferenceURL 在 iOS 11 中被弃用(尽管它仍然在 info 字典中返回)并且应该被替换为 UIImagePickerControllerPHAsset,但我还没有得到包含该键的 info 字典。由于一个已弃用而另一个已丢失,是否有已知的解决方案可以从选取的图像中提取“拍摄日期”?

作为引用,这是一个示例 info 字典,当从库中选取图像时返回该字典:

▿ 4 elements
▿ 0 : 2 elements
- key : "UIImagePickerControllerImageURL"
- value : file:///private/var/mobile/Containers/Data/Application/EE1BA60E-2DC3-47C5-A58D-86498E95C323/tmp/3A025D4C-B378-474B-8A09-017479A3A776.jpeg
▿ 1 : 2 elements
- key : "UIImagePickerControllerMediaType"
- value : public.image
▿ 2 : 2 elements
- key : "UIImagePickerControllerReferenceURL"
- value : assets-library://asset/asset.HEIC?id=537976CD-A550-41C9-9416-92C8072112D7&ext=HEIC
▿ 3 : 2 elements
- key : "UIImagePickerControllerOriginalImage"
- value : <UIImage: 0x1d04b4760> size {3024, 4032} orientation 3 scale 1.000000

(请注意,UIImagePickerControllerReferenceURL 仍然存在,但已弃用,并且建议的替代品 UIImagePickerControllerPHAsset 已丢失。)

如果存在,获取日期会很简单:

if let asset = info[UIImagePickerControllerPHAsset] as? PHAsset,
let resource = PHAssetResource.assetResources(for: asset).first {
let dateTaken = resource.creationDate
}

会不会是苹果忘了实现UIImagePickerControllerPHAsset?关于解决方法的任何想法(不使用已弃用的方法)?

注意可能的重复

我认为 Stack Overflow 上以前的解决方案已被弃用,因此不会使用现代方法回答这个问题。

最佳答案

swift 4.1

我也为此苦苦挣扎了一段时间。事实证明,您只需要用户许可即可访问照片库 - 然后 info 将包含键 UIImagePickerControllerPHAsset 的值。您可以像这样检查和请求访问权限:

let status = PHPhotoLibrary.authorizationStatus()

switch status {
case .authorized:
// show your media picker
case .denied:
// probably alert the user that they need to grant photo access
case .notDetermined:
PHPhotoLibrary.requestAuthorization({status in
if status == .authorized {
// show your media picker
}
})
case .restricted:
// probably alert the user that photo access is restricted
}

然后您像往常一样使用 imagePickerController(_: didFinishPickingMediaWithInfo:) 方法,并且可以访问 UIImagePickerControllerPHAsset

关于ios - UIImagePickerControllerDelegate 从 iOS 11 中选取的图像获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47316909/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com