Есть ли эквивалент NSStringFromClass в Swift, который дает читаемую пользователем версию имени класса? Я попытался использовать его с собственным классом Swift, который я создал, но, как вы можете видеть, результат, похоже, является внутренним представлением компилятора имени класса:
println(NSStringFromClass(MyClass.self))
Результат:
_TtC5test7MyClass
Я попытался добавить к классу атрибут @objc и сделать его подклассом NSObject, но это не имеет никакого значения. Я обнаружил, что если я заменил MyClass классом Objective-C с тем же именем и импортировал его в заголовок моста, он даст мне "MyClass", но это не обязательно.
Другой вариант - создать протокол для этого, который каждый класс, который я хочу использовать таким образом, должен соответствовать:
protocol Nameable {
class var className: String { get }
}
Однако было бы проще иметь встроенный способ сделать это на языке.