Получение имени класса в Swift довольно просто:
import Foundation
class Gen<T> {
init() { }
}
func printName(obj: AnyObject) {
dump(NSStringFromClass(obj.dynamicType))
}
let a: Gen<String> = Gen()
let b: Gen<Int> = Gen()
printName(a)
printName(b)
Однако, если вы запустите указанный выше код дважды, он не даст тот же результат.
Итак, существует ли способ реализовать printName
(получить в специализированном родовом имени класса) стабильным образом? Это несколько запусков кода печатает одну и ту же строку для одного и того же класса?
Я использую последнюю версию Xcode.
Некоторые дополнительные требования:
- Количество классов, которое будет передано
printName
, велико. - Возможно, существует более одного универсального класса, но не много.