一尘不染

快速获取类名的用户可读版本(在objc NSStringFromClass中就可以了)

swift

Swift中是否有等效的NSStringFromClass给出了用户可读的类名版本?我尝试将其与我创建的本机Swift类一起使用,但是如您所见,结果似乎是编译器对类名的内部表示:

println(NSStringFromClass(MyClass.self))

结果:

_TtC5test7MyClass

我尝试将 @objc 属性添加到该类,并使其成为NSObject的子类,但没有区别。我发现,如果我用同名的Objective-
C类替换MyClass,并将其导入到桥接头文件中,则会得到“ MyClass”,但这不是必须的。

另一个选择是为此制定一个协议,我要以此方式使用的每个类都必须符合:

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

但是,使用该语言以内置的方式执行此操作会更容易。


阅读 230

收藏
2020-07-07

共1个答案

一尘不染

您现在可以执行以下操作:

String(MyClass)
2020-07-07