日記アプリ開発中にハマった問題のメモ。
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