शुद्ध Swift में प्रोटोकॉल पर कमजोर संदर्भ कैसे बनाएं (@objc के बिना)
सभी को नमस्कार! मैं Swift में नया हूँ और delegate पैटर्न लागू करते समय एक समस्या का सामना कर रहा हूँ।
मेरे पास एक प्रोटोकॉल `MyDelegate` और एक क्लास `ViewController` है, जो दूसरी क्लास `Service` का delegate होना चाहिए। मैं चाहता हूँ कि `Service` में `delegate` प्रॉपर्टी एक कमजोर संदर्भ (weak reference) हो, ताकि मजबूत संदर्भ चक्र और मेमोरी लीक से बचा जा सके।
यहाँ मेरा कोड है:
```swift
protocol MyDelegate {
func didSomething()
}
class Service {
weak var delegate: MyDelegate? // त्रुटि: 'weak' को गैर-क्लास प्रकार 'MyDelegate' पर लागू नहीं किया जा सकता
func performTask() {
delegate?.didSomething()
}
}
class ViewController: MyDelegate {
func didSomething() {
print("कार्य पूर्ण!")
}
}
```
Xcode त्रुटि देता है: `'weak' cannot be applied to non-class type 'MyDelegate'`। मैं समझता हूँ कि `weak` केवल संदर्भ प्रकारों (क्लास) के साथ काम करता है, लेकिन प्रोटोकॉल को क्लास और स्ट्रक्चर दोनों द्वारा अपनाया जा सकता है।
प्रोटोकॉल पर कमजोर संदर्भ सही तरीके से कैसे बनाएं?