我正在尝试从我用PHPickerViewController获取的图像中读出一些元数据。
var config = PHPickerConfiguration()
self.phPicker = PHPickerViewController(configuration: config)
if let picker = self.phPicker {
self.phPicker?.delegate = self
self.present(picker, animated: true) {
self.phPicker = nil
}
}但是访问这些数据的PHPickerResult.assetIdentifier总是为零。
extension ChatViewController: PHPickerViewControllerDelegate {
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
dismiss(animated: true) {
if results.isEmpty {
return
}
assert(results.first!.assetIdentifier != nil) // fails
}
}
}发布于 2022-02-16 10:53:16
诀窍是PHPickerViewController的正确配置。
var config = PHPickerConfiguration() // WRONG!
let picker = PHPickerViewController(configuration: config)根据文档,您必须使用PHPhotoLibrary。
A PHPhotoLibrary提供对用户照片库中照片、视频和相关内容的元数据和图像数据的访问,包括来自相机卷、iCloud共享、照片流、导入和从iTunes同步的内容。
因此,只需在构造函数中使用PHPhotoLibrary,一切都可以正常工作。
var config = PHPickerConfiguration(photoLibrary: PHPhotoLibrary.shared()) // CORRECT!
let picker = PHPickerViewController(configuration: config)https://stackoverflow.com/questions/71140471
复制相似问题