Как создать слабую ссылку на протокол в чистом Swift (без @objc)
```html
مرحباً بالجميع! أنا مبتدئ في Swift وواجهت مشكلة أثناء تنفيذ نمط المفوض (delegate).
لدي بروتوكول `MyDelegate` وفئة `ViewController`، والتي يجب أن تكون مفوضة لفئة أخرى `Service`. أريد أن تكون الخاصية `delegate` في `Service` مرجعاً ضعيفاً (weak) لتجنب الدورة القوية من المراجع وتسرب الذاكرة.
هذا هو الكود الخاص بي:
```swift
protocol MyDelegate {
func didSomething()
}
class Service {
weak var delegate: MyDelegate? // خطأ: 'weak' cannot be applied to non-class type 'MyDelegate'
func performTask() {
delegate?.didSomething()
}
}
class ViewController: MyDelegate {
func didSomething() {
print("تم تنفيذ المهمة!")
}
}
```
Xcode يعطي خطأ: `'weak' cannot be applied to non-class type 'MyDelegate'`. أفهم أن `weak` يعمل فقط مع الأنواع المرجعية (الفئات)، لكن البروتوكولات يمكن أن تتبناها الفئات والهياكل.
كيف يمكنني جعل المرجع الضعيف على البروتو
```