تحويل وحدة DispatchQueue الثقيلة إلى غير متزامن/انتظار
متى تستخدمه: أنت تمتلك وحدة تمزج بين DispatchQueue ومعالجات الإكمال وعمليات الإغلاق @escaping؛ تريد غير متزامن/تنتظر.
المتطلبات الأساسية
- Xcode مع Swift 5.9+ (وضع Swift 6 إذا كنت تريد التزامن الصارم) — قم بتثبيت Xcode من متجر التطبيقات
- تم تثبيت المهارة — / سوق المكونات الإضافية أضف kylehughes/the-unofficial-swift-concurrency-migration-skill
الخطوات
-
اسأل عن خطة الهجرةقم بشرح كيفية ترحيل NetworkService.swift إلى async/await، مع الاستشهاد بدليل ترحيل Swift Concurrency.✓ تم النسخ→ خطط لمراجع المقالات المسماة في الدليل
-
تطبيق خطوة بخطوةابدأ بسطح واجهة برمجة التطبيقات العام - قم بتحويل أساليب معالج الإكمال إلى غير متزامن/انتظار.✓ تم النسخ→ تستخدم التعليمات البرمجية واجهات برمجة التطبيقات غير المتزامنة الاصطلاحية، وليس عمليات الاسترجاعات المجمعة
-
التعامل مع الإلغاء والعزلأضف إلغاء المهام وحدد عزل الممثل لذاكرة التخزين المؤقت.✓ تم النسخ→ المهمة المناسبة. التحقق من الإلغاء + عزل الممثل الصريح
النتيجة: تم ترحيل الوحدة بشكل نظيف مع المنطق المرتبط بتوجيهات Apple الخاصة.
المزالق
- التفاف عمليات الاسترجاعات مع CheckedContinuation دون تحديد الملكية — قم بترحيل واجهة برمجة التطبيقات الجذرية أولاً؛ لا تترك الاستمرارات كجسور دائمة