質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

675閲覧

DKImagePickerControllerを使って画像を取り出したい

ROKIDOG

総合スコア20

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/08/31 03:46

DKImagePickerControllerを使って画像を取り出したい

DKImagePickerControllerで取り出した画像を変数selectedImagesに入れたいのですが,Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional valueというエラーが出ています。print(image)してみると画像はちゃんとimageに入っていました。

どうすれば、imageを変数の配列の中に入れることができるでしょうか??

ご教授お願いいたします。

class PostViewController: UIViewController,UIScrollViewDelegate, UINavigationControllerDelegate,UIImagePickerControllerDelegate { var resizedImage: UIImage! var selectedImages : [UIImage]! override func viewDidLoad() { super.viewDidLoad() } @IBAction func selectImage() { let alertController = UIAlertController(title: "画像選択", message: "シェアする画像を選択して下さい。", preferredStyle: .actionSheet) let cancelAction = UIAlertAction(title: "キャンセル", style: .cancel) { (action) in alertController.dismiss(animated: true, completion: nil) } let cameraAction = UIAlertAction(title: "カメラで撮影", style: .default) { (action) in // カメラ起動 if UIImagePickerController.isSourceTypeAvailable(.camera) == true { let picker = UIImagePickerController() picker.sourceType = .camera picker.delegate = self self.present(picker, animated: true, completion: nil) } else { print("この機種ではカメラが使用出来ません。") } } let photoLibraryAction = UIAlertAction(title: "フォトライブラリから選択", style: .default) { (action) in // アルバム起動 if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) == true { let pickerController = DKImagePickerController() pickerController.delegate = self // 選択可能上限の設定もできます pickerController.maxSelectableCount = 5 pickerController.didSelectAssets = { [unowned self] (assets: [DKAsset]) in // 選択された画像はassetsに入れて返却されますのでfetchして取り出すとよいでしょう for asset in assets { asset.fetchFullScreenImage(completeBlock: { (image, info) in // ここで取り出せます print(image,"画像") self.selectedImages.append(image!)//ここでエラー }) } } self.present(pickerController, animated: true) {} // nil) } else { print("この機種ではフォトライブラリが使用出来ません。") } } alertController.addAction(cancelAction) alertController.addAction(cameraAction) alertController.addAction(photoLibraryAction) self.present(alertController, animated: true, completion: nil) }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

selectedImagesnil のため、実行時エラーが起きてしまっています。
nil に対して apped を実行しようとしていることが原因です。

Swift

1 var selectedImages : [UIImage]!

ではなく、

Swift

1 var selectedImages : [UIImage] = []

と「空の配列」を代入すれば解決するかと思います。

投稿2020/08/31 04:19

TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ROKIDOG

2020/08/31 15:34

ああああありがとうございます!!! できました!! 本当に助かりました!勉強になります!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問