Avatar ·

كيفية تعريف مصفوفة من المراجع الضعيفة (weak references) في Swift؟

مرحباً بالجميع! أنا مبتدئ في Swift وأحاول فهم إدارة الذاكرة. لدي كلاس `Delegate` يُستخدم كـ delegate لعدة كائنات. أريد تخزين قائمة بهذه الـ delegates في مصفوفة، لكن لا أريد أن تحتفظ المصفوفة بمرجع قوي (strong reference) لها، وإلا ستحدث تسريبات للذاكرة أو مراجع دائرية (circular references). في Objective-C كنت أستخدم `NSPointerArray` مع خيار `NSPointerFunctionsWeakMemory`. لكن في Swift لا يمكنني ببساطة كتابة `weak var delegates: [Delegate]` — المترجم يعطي خطأ: `'weak' may only be applied to class and class-bound protocol types, not array`. هذا مثال على الكود الخاص بي: ```swift class Delegate { weak var owner: SomeClass? func didSomething() { } } class SomeClass { // كيف يمكن جعل هذه المصفوفة ضعيفة؟ var delegates: [Delegate] } ```