Swift में किसी ऑब्जेक्ट का क्लास नाम स्ट्रिंग के रूप में कैसे प्राप्त करें?
सभी को नमस्कार! मैं Swift में नया हूँ और यह समझने की कोशिश कर रहा हूँ कि किसी ऑब्जेक्ट का क्लास नाम स्ट्रिंग के रूप में कैसे प्राप्त करें। Objective-C में मैं `NSStringFromClass([self class])` का उपयोग करता था, लेकिन Swift में यह काम नहीं करता।
मुझे डिबगिंग के लिए रनटाइम पर ऑब्जेक्ट प्रकारों को लॉग करना है। उदाहरण के लिए, मेरे पास एक प्रोटोकॉल `Animal` है और कई स्ट्रक्चर जो इसे इम्प्लीमेंट करते हैं: `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:)` के बारे में सुना है, लेकिन विवरणों में उलझ गया हूँ।