以下のコードにおきまして、分からない箇所があり、質問させて貰いました。
import UIKit import Photos class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate { @IBOutlet weak var backImageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() PHPhotoLibrary.requestAuthorization { (status) in switch(status){ case .authorized: print("許可されています") case .denied: print("拒否された") case .notDetermined: print("notDetermined") case .restricted: print("許可されています。") } } } @IBAction func openCamera(_ sender: Any) { let sourceType = UIImagePickerController.SourceType.camera //カメラが利用可能かチェック if UIImagePickerController.isSourceTypeAvailable(.camera){ //インスタンス化 let cameraPicker = UIImagePickerController() cameraPicker.sourceType = sourceType cameraPicker.delegate = self cameraPicker.allowsEditing = true present(cameraPicker, animated: true, completion: nil) }else{ print("エラー") } } func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { picker.dismiss(animated: true, completion: nil) } @IBAction func openAlbumn(_ sender: Any) { let sourceType = UIImagePickerController.SourceType.photoLibrary //カメラが利用可能かチェック if UIImagePickerController.isSourceTypeAvailable(.camera){ //インスタンス化 let cameraPicker = UIImagePickerController() cameraPicker.sourceType = sourceType cameraPicker.delegate = self cameraPicker.allowsEditing = true present(cameraPicker, animated: true, completion: nil) }else{ print("エラー") } } //撮影が完了した時に呼ばれる(アルバムから画像が選択された時に呼ばれる箇所) func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if let pickedImage = info[.editedImage] as? UIImage{ backImageView.image = pickedImage UIImageWriteToSavedPhotosAlbum(pickedImage, self, nil, nil) picker.dismiss(animated: true, completion: nil) } } //シェアするための機能 @IBAction func share(_ sender: Any) { let text = "#tamariba" let image = backImageView.image?.jpegData(compressionQuality: 0.2) let items = [text,image] as [Any] let activityVC = UIActivityViewController(activityItems: items, applicationActivities: nil) present(activityVC, animated: true, completion: nil) } }
こちらのコードのimagePickerController
関数内のif let pickedImage = info[.editedImage] as? UIImage{
ここの部分なのですが、if let pickedImage = info[.editedImage]
ここまではinfo[.editedImage]
ここの中身に値が入っていた場合に、処理を継続する「if let」文であるかと思うのですが、
as? UIImage
ここの部分がいまいち分りません。
as?はキャストを行なっているのだと思うのですが、info[.editedImage]
の値が存在した場合、UIImage型にキャストし、pickedImage
に代入するといった理解であっていますでしょうか?
ご助言頂けましたら、幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/03 03:20
2019/12/03 05:49