以下の内容はhttps://develop.hateblo.jp/entry/swift-cast-checkより取得しました。


【iOSアプリ開発】Swiftでキャスト(型変換)できるかチェックする方法

https://i-cdn.phonearena.com/images/article/100355-image/Bizarre-chapter-in-Apple-iPhone-history-ends-with-iOS-11.2-update.jpg


日記アプリ開発中にハマった問題のメモ。



Swiftで型変換をしたいタイミングがあったのですが、

無理やりキャストしようとすると、キャストできないデータの場合などにアプリがクラッシュしてしまいます。



どうにかキャストする前にキャストできるかチェックする方法がないか調べてみたら、「is」を使えばキャストできるかチェックできるようです。


Swiftでキャストできるかチェックするには「is」を使う

例えば、配列の中のデータを順番に見て行って、UIImageにキャストできるデータかどうかチェックするには以下のようにします。

for obj in array {
    if obj is UIImage {
        print("\(obj) is UIImage")
    }
}


今回作っている日記アプリで実際に使った例としては、
Realmに画像(UIImage)をData型に変換して保存して、読み込むタイミングでData型からUIImageにキャストするっていう実装をしたので、キャストできるかチェックするために「is」を使いました。

キャストできるかチェックするっていうのは結構使用頻度が高いと思うので、覚えておくと便利だなと思います。

参考:
qiita.com




以上の内容はhttps://develop.hateblo.jp/entry/swift-cast-checkより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14