كيفية الحصول على اسم كلاس الكائن كسلسلة نصية في 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:`).