LoginSignup
1
1

More than 1 year has passed since last update.

クラス名を取得するExtension

Posted at

タイポ対策のためにクラス名を取得したいと思ったときに、いろいろ方法があったので残しておきます。

実装

import Foundation

extension NSObject {

    // from class
    class var className: String {
        return String(describing: self)
    }

    // from instance
    var className: String {
        return String(describing: type(of: self))
    }

}

上のやつがクラスから呼ばれるやつで、下のやつがインスタンスから呼ばれるやつです。
NSObjectというのはよく理解していないのですが、ほとんどのクラスの継承元となっているクラスで、強いて言うならルートクラスみたいなやつです。

挙動

print(UIView.className)
// "UIView"が出力される

let myLabel = UILabel()
print(myLabel.className)
// "UILabel"が出力される

応用例

    static let identifier = HistoryDateCell.className

cellのidentifierを登録するとき等に便利です!






他にも、インスタンス名とかファイル名とか取得する方法ってあるんですかね

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1