UIImagePickerControllerの使用でエラーおよびメモリリークが発生する
開発中のアプリでどうしてもエラーが消えないため、UIImagePickerControllerのみの単純なプロジェクトを別途作成しましたが、画像選択後、同様に下記エラーが発生します。
[discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled}
また同じく別途作成したプロジェクトにおいて、画像選択後メモリリークが発生しているようです。
画像を一つ選択するごとにメモリリークが増えていきます。
ソースコードは下記の通りです。
import UIKit
import Photos
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var imageView: UIImageView!
private var picker: UIImagePickerController!
override func viewDidLoad() {
super.viewDidLoad()
self.checkPermission()
picker = UIImagePickerController()
picker.delegate = self
}
func checkPermission() {
let photoAuthorizationStatus = PHPhotoLibrary.authorizationStatus()
switch photoAuthorizationStatus {
case .authorized:
print("authorized")
case .notDetermined:
PHPhotoLibrary.requestAuthorization({
(newStatus) in
print("status = \(newStatus)")
if newStatus == PHAuthorizationStatus.authorized {
print("success")
}
})
print("It is not determined until now")
case .restricted:
print("restricted")
case .denied:
print("denied")
}
}
@IBAction func imageViewTapped(_ sender: UITapGestureRecognizer) {
let album = UIImagePickerController.SourceType.photoLibrary
if UIImagePickerController.isSourceTypeAvailable(album) {
picker.sourceType = .photoLibrary
self.present(picker, animated: true, completion: nil)
}
}
@objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
let image = info[.originalImage] as! UIImage
imageView.image = image
self.dismiss(animated: true, completion: nil)
}
@objc func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
self.dismiss(animated: true, completion: nil)
}
}
info.plistへPhotoLibraryUsageDescriptionも追加してあります。
これらの問題は何がいけないのでしょうか?