Avatar ·

كيفية عمل تأخير (delay) في Swift: دليل كامل

مرحبًا بالجميع! أنا مبتدئ في Swift وتطوير iOS. أكتب تطبيقًا بسيطًا للتدريب — عداد تنازلي. أحتاج بعد الضغط على زر "ابدأ" أن ينتظر البرنامج 3 ثوانٍ ثم ينفذ إجراءً ما (مثل عرض رسالة أو تشغيل حركة). حاولت استخدام `sleep(3)`، لكن يبدو أنه يحجب الواجهة بأكملها — يتجمد التطبيق لمدة 3 ثوانٍ ولا يمكن الضغط على الأزرار. هذا ليس ما أحتاجه. أرجو إرشادي إلى الطريقة الصحيحة لعمل تأخير في Swift بحيث تبقى الواجهة مستجيبة؟ يُفضل مع مثال كود لنظام iOS (UIKit أو SwiftUI). سمعت عن `DispatchQueue.main.asyncAfter` لكني لا أفهم تمامًا كيف يعمل. إليك كودي الحالي (الخاطئ): ```swift @IBAction func startButtonTapped(_ sender: UIButton) { print("نبدأ التأخير...") sleep(3) // هذا يحجب UI print("مرت 3 ثوانٍ") // هنا سيتم تحديث UI } ``` شكرًا مقدمًا على المساعدة! <<>>

الصحيح