Swiftでクラス名を取得する方法

LINEで送る
Pocket

最近iOSアプリを開発するときに書くコードは、Swiftにほぼ移行しました。
割りとスムーズにいったので、安心しています。

外部ライブラリ以外は、Swiftで書いたアプリを一つ仕上げたのですが、これでだいぶ身についた気がします。

しかし、Objective-Cで書いてた書き方が、どう置き換えたらいいかわからないこともまだまだあります。
例えば、クラス名を取得する方法。
それほど使う場面はないのですが、最近使う場面に出くわしたので共有します。

Objective-Cだと以下のコードで、取得します。

NSStringFromClass([object class])

これに変わるコードはどれになるのかという話ですが、

NSStringFromClass(self.dynamicType)
これで、クラス名を取得できます。

ただ、名前空間(たぶん)が補完されプロジェクトの名称も含まれたものになります。
プロジェクトがhogehogeなら、hogehoge.ClassNameといった具合です。

なので、これを回避する方法はわからないので、NSStringFromClass([object class])と同じ結果が欲しい場合は、以下のようにします。

NSStringFromClass(self.dynamicType).componentsSeparatedByString(".").last! as String
として、使っています。

Swiftの使い方は、まだまだ深いところまで辿りつけていないのも事実。
とりあえず、Objective-Cで使っていたテクニックでも、置き換えができるものはどんどん頭の中で置き換えておきたいと思っています。

これからも更新を続けていきますので、Feedlyへの登録をお願いします!

follow us in feedly

LINEで送る
Pocket

コメントを残す