Swiftでクラス名のユーザーが判読できるバージョンを取得します(objcではNSStringFromClassで問題ありません)質問する

Swiftでクラス名のユーザーが判読できるバージョンを取得します(objcではNSStringFromClassで問題ありません)質問する

Swift には、クラス名のユーザーが判読できるバージョンを提供する NSStringFromClass に相当するものはありますか? 作成したネイティブ Swift クラスでこれを使用しようとしましたが、ご覧のとおり、結果はクラス名のコンパイラの内部表現のようです。

println(NSStringFromClass(MyClass.self))

結果:

_TtC5test7MyClass

私は追加してみました翻訳者クラスに .csv 属性を追加し、NSObject のサブクラスにしてみましたが、違いはありませんでした。MyClass を同じ名前の Objective-C クラスに置き換えて、これをブリッジ ヘッダーにインポートすると、'MyClass' になることがわかりましたが、これは必要ないはずです。

もう 1 つのオプションは、このためのプロトコルを作成することです。この方法で使用する各クラスは、次のプロトコルに準拠する必要があります。

protocol Nameable {
    class var className: String { get }
}

ただし、言語内にこれを実行するための組み込みの方法があれば簡単になります。

ベストアンサー1

これで、次の操作を実行できます。

String(MyClass)

おすすめ記事