テクノモンキーのアプリ開発日記

テクノモンキーの開発ブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsを発信します。

【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