Swift4.2でカメラロールから取得した画像をプログラム中で取得する際に注意すべき点

公開日:2018-12-06
最終更新:2018-12-06

Swift4.2でカメラロールから画像を取得しようとしたら、ビルドできなかったので備忘録として残します。誰かの役にたてば幸せ。

結論

imagePickerController メソッドの引数と info のインデックスが、Swift4.2で変更されたので、4.2に対応する書き方をする。

[Swift4.2での書き方]

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {  
    if let image = info[.originalImage] as? UIImage {  
        setImageToScene(image: image)  
    }  
}  

修正前コード

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {  
    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {  
        setImageToScene(image: image)  
    }  
}  

吐いていたSwift Compile Error

Cannot subscript a value of type '[String : Any]' with an index of type 'UIImagePickerController.InfoKey'  

修正後コード

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {  
    if let image = info[.originalImage] as? UIImage {  
        setImageToScene(image: image)  
    }  
}  

Swift4.2では

[String : Any] → [UIImagePickerController.InfoKey : Any]
info[.originalImage] → info[.originalImage]

とすることで問題なく動作します。

参考ページ

stackoverflow Cannot subscript a value of type...
Apple Documentation imagePickerController(...

記事が少しでもいいなと思ったらクラップを送ってみよう!
5
+1
@KatsuyoshiIshii'の技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする