Comment obtenir le nom de la classe d'un objet sous forme de chaîne en Swift?
Bonjour à tous! Je suis nouveau en Swift et j'essaie de comprendre comment obtenir le nom de la classe d'un objet sous forme de chaîne. En Objective-C, j'utilisais `NSStringFromClass([self class])`, mais cela ne fonctionne pas en Swift.
J'ai besoin de logger les types d'objets pendant l'exécution pour le débogage. Par exemple, j'ai un protocol `Animal` et plusieurs structs qui l'implémentent: `Dog`, `Cat` et `Bird`. Dans la fonction `printAnimalType(animal: Animal)`, je veux afficher le nom du type concret qui a été passé, pas simplement "Animal".
Voici un exemple de mon code:
```swift
protocol Animal {
func makeSound()
}
struct Dog: Animal {
func makeSound() { print("Woof!") }
}
struct Cat: Animal {
func makeSound() { print("Meow!") }
}
func printAnimalType(animal: Animal) {
// Comment obtenir la chaîne "Dog" ou "Cat" ici?
print("Animal type: \(animal.self)")
}
```
J'ai essayé `String(describing: animal.self)`, mais cela retourne quelque chose comme `Animal` ou `Dog`? Je ne suis pas sûr. J'ai aussi entendu parler de `Mirror` et `type(of:).