Avatar ·

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:).