環境:Swift5 iOS14
preferredAssetRepresentationMode = .current
上記のコードがないとHEICが取得できません
UIImageではなくData型で取得しています
import UIKit
import PhotosUI
class ViewController: UIViewController , PHPickerViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
var config = PHPickerConfiguration()
config.filter = .images
config.preferredAssetRepresentationMode = .current
config.selectionLimit = 0
let picker = PHPickerViewController(configuration: config)
picker.delegate = self
self.present(picker, animated: true, completion: nil)
}
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
picker.dismiss(animated: true , completion: nil)
guard let first = results.first else {
return
}
if first.itemProvider.canLoadObject(ofClass: UIImage.self) {
first.itemProvider.loadDataRepresentation(forTypeIdentifier: "public.image", completionHandler: { (data,error) in
if let imageData = data {
print("imageData = \(imageData)")
}else{
print("error:\(String(describing: error?.localizedDescription))")
}
})
} else {
print("Error(2)")
}
}
}