Cuando se trata de entender un programa, o en algunos casos, es útil poder saber de qué tipo es algo. Sé que el depurador puede mostrarle cierta información de tipo, y generalmente puede confiar en la inferencia de tipo para salirse sin especificar el tipo en esas situaciones, pero aún así, realmente me gustaría tener algo como Pythontype()
dynamicType (ver esta pregunta )
Actualización: esto se ha cambiado en una versión reciente de Swift, obj.dynamicType
ahora le da una referencia al tipo y no a la instancia del tipo dinámico.
Este parece el más prometedor, pero hasta ahora no he podido averiguar el tipo real
class MyClass {
var count = 0
}
let mc = MyClass()
# update: this now evaluates as true
mc.dynamicType === MyClass.self
También probé usando una referencia de clase para crear instancias de un objeto nuevo, lo que hace el trabajo, pero curiosamente me dio un error diciendo que debo añadir un required
inicializador:
trabajos:
class MyClass {
var count = 0
required init() {
}
}
let myClass2 = MyClass.self
let mc2 = MyClass2()
Sin embargo, solo un pequeño paso para descubrir realmente el tipo de cualquier objeto dado
editar : eliminé una cantidad considerable de detalles irrelevantes; mira el historial de edición si estás interesado :)
print(mc)
o dump(mc)
imprimirá un resumen (que puede obtener de toString(mc)
o reflect(mc).summary
), que contendrá el nombre de la clase en alguna parte. Pero no está claro cómo obtener el nombre de la clase usted mismo.