【Xcode:Swift】Cannot convert value of type ‘StorageReference’ to expected argument type ‘URL?’の解消法

                   

Swiftの変化が激しすぎる…。

スポンサーリンク

つい2〜3年ほど前に使えていたものが使えなくなっていたりする。

今回も2年くらい前の動画講義で勉強していて、全く同じコードを書いているのに、

また怒られた…。

「Cannot convert value of type ‘StorageReference’ to expected argument type ‘URL?’だとう???

英語がわかんないぜ!」

てことで、Google翻訳すると、「StorageReferenceをURL型に変換できない」とのこと。

今度はGoogleでStorageReferenceをURL型に変換する方法を探すも見つからず…。

結論いえば、そもそもsd_setImageを使うのではないということが判明。

Firebaseの公式ドキュメントに「getData(maxSize:completion:)を使う」と書いてあった。

» getData(maxSize:completion:)について

とはいえ、具体的なコーディングが記載されていないので、「実際どうやって使えばいいんだ?」と困りましたが、下記コーディングで無事Firebaseから画像を引っ張ってきてアプリに表示することができました。

↓修正前

func getImage(userID:String, imageView:UIImageView){
        let imageRef = storage.child("image/\(userID).jpeg")
        imageView.sd_setImage(with: imageRef)
    }

↓修正後

func getImage(userID:String, imageView:UIImageView){
        let imageRef = storage.child("image/\(userID).jpeg")
        imageRef.getData(maxSize: 1 * 1024 * 1024, completion: {data, error in
            if data != nil {
                imageView.image = UIImage(data: data!)
            } else {
                return
            }
        })
    }

10年以上ブランクのある元VB系エンジニアなんですが、VBAは10年以上前の知識で今でも十分通用するんだけどなぁ。

Swiftの勉強始めてようやく半年だけど、こういった数年前使えていたところが今は使えなくてドン詰まって解決するのに大半の時間を使う…というくだりが多くて、進捗が激おっそ…(-_-;)

AppleとGoogleに「エンジニアなら挫折しないで習得してみなはれ」と試されているのかしら。

スポンサーリンク

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*