Swiftでクラスを比較する方法(is, dynamicType)

Pocket

変数の型を調べる記事で、dynamicTypeを紹介したけど、クラスの型にも使えるよ。

今回はそれプラス is についてを見てみるよ。

swiftでクラスを比較する

こんな感じで指定のクラスかどうかを is クラス名 で判別できるよ。

Humanもtrueになってることから、継承元(スーパークラス)もtrueになることがわかるね。

これはこれで良いんだけど、特定のクラスのみを判別したい場合はdynamicTypeを使うよ。

継承元を無視した特定のクラスのみを比較する

今度はHumanがfalseになるのがわかる。

こんな感じで、インスタンス.dynamicType == クラス名.self で比較ができるよ。

それぞれの違いを理解しつつ使い分けをしよう。


おわりに

最近、 teratail が無料のわりに良くできてておすすめ。

ボクがリリースしたアプリも役に立ったらDLしてみてね -> iOSアプリ
スポンサーリンク
  • このエントリーをはてなブックマークに追加