Avatar ·

كيفية الحصول على اسم كلاس الكائن كسلسلة نصية في Swift؟

مرحباً بالجميع! أنا مبتدئ في Swift وأحاول فهم كيفية الحصول على اسم كلاس الكائن كسلسلة نصية. في Objective-C كنت أستخدم `NSStringFromClass([self class])`، لكن هذا لا يعمل في Swift. أحتاج إلى تسجيل أنواع الكائنات أثناء التنفيذ لأغراض التصحيح. على سبيل المثال، لدي بروتوكول `Animal` وعدة structs تطبقه: `Dog` و `Cat` و `Bird`. في الدالة `printAnimalType(animal: Animal)` أريد طباعة اسم النوع المحدد الذي تم تمريره، وليس فقط "Animal". إليك مثال على الكود الخاص بي: ```swift protocol Animal { func makeSound() } struct Dog: Animal { func makeSound() { print("Woof!") } } struct Cat: Animal { func makeSound() { print("Meow!") } } func printAnimalType(animal: Animal) { // كيف أحصل على السلسلة "Dog" أو "Cat" هنا؟ print("Animal type: \(animal.self)") } ``` لقد جربت `String(describing: animal.self)`، لكن هذا يعيد شيئاً مثل `Animal` أو `Dog`؟ لست متأكداً. كما سمعت عن `Mirror` و `type(of:`).