كيفية استخدام dispatch_sync و dispatch_async و dispatch_after ووظائف GCD الأخرى بشكل صحيح في Swift 3 و 4 والإصدارات الأحدث؟
مرحباً بالجميع! أنا أنتقل من Objective-C إلى Swift، وأواجه ارتباكاً مع Grand Central Dispatch (GCD) بعد إصدار Swift 3. كنت سابقاً أكتب شيئاً مثل:\n\n```swift\ndispatch_async(dispatch_get_main_queue(), {\n // تحديث واجهة المستخدم\n})\n```\n\nلكن الآن يقول Xcode أن هذا غير صحيح. أفهم أن Apple غيرت الـ API، لكنني لا أجد شرحاً واضحاً لكيفية العمل مع GCD في Swift 3 و 4 والإصدارات الأحدث. أحتاج إلى فهم:\n\n1. كيفية تنفيذ الكود بشكل غير متزامن (asynchronously) على الـ main queue (لتحديث واجهة المستخدم)؟\n2. كيفية تنفيذ الكود بشكل متزامن (synchronously) (dispatch_sync) في الـ background queue؟\n3. كيفية عمل تأخير قبل التنفيذ (dispatch_after)؟\n4. كيفية إنشاء queue خاصة بي؟\n\nلقد حاولت الكتابة بهذه الطريقة، لكنها لا تعمل:\n\n```swift\nDispatchQueue.main.async {\n // كود\n}\nDispatchQueue.globa