Avatar ·

Cómo obtener el nombre de la clase de un objeto como cadena en Swift

¡Hola a todos! Soy nuevo en Swift y estoy tratando de entender cómo obtener el nombre de la clase de un objeto como cadena. En Objective-C usaba `NSStringFromClass([self class])`, pero en Swift esto no funciona. Necesito registrar los tipos de objetos durante la ejecución para depuración. Por ejemplo, tengo un protocolo `Animal` y varias estructuras que lo implementan: `Dog`, `Cat` y `Bird`. En la función `printAnimalType(animal: Animal)` quiero imprimir el nombre del tipo concreto que se pasó, no solo "Animal". Aquí hay un ejemplo de mi código: ```swift protocol Animal { func makeSound() } struct Dog: Animal { func makeSound() { print("Woof!") } } struct Cat: Animal { func makeSound() { print("Meow!") } } func printAnimalType(animal: Animal) { // ¿Cómo obtener la cadena "Dog" o "Cat" aquí? print("Animal type: \(animal.self)") } ``` He probado `String(describing: animal.self)`, pero ¿esto devuelve algo como `Animal` o `Dog`? No estoy seguro. También he oído sobre `Mirror` y `type(of: ...)`.