AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。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