Avatar ·

كيفية تنفيذ الكود بشكل صحيح في الخلفية في Swift (Grand Central Dispatch)؟

مرحبًا بالجميع! أنا مبتدئ في تطوير iOS باستخدام Swift، وواجهت مشكلة مع تعدد الخيوط. لدي تطبيق يقوم بتحميل الصور من الإنترنت. عندما أستدعي دالة التحميل على الخيط الرئيسي، تتجمد الواجهة لبضع ثوانٍ — يتباطأ التمرير في الجدول وتختفي الرسوم المتحركة. أفهم أنني بحاجة إلى نقل العمليات الثقيلة (طلبات الشبكة، معالجة البيانات) إلى خيط خلفي، لكنني لا أعرف كيفية القيام بذلك بشكل صحيح. إليك مثال على الكود الخاص بي: ```swift func loadImage(from urlString: String) -> UIImage? { guard let url = URL(string: urlString) else { return nil } do { let data = try Data(contentsOf: url) return UIImage(data: data) } catch { print("Error loading image: \(error)") return nil } } // الاستخدام في viewDidLoad override func viewDidLoad() { super.viewDidLoad() let image = loadImage(from: "https://example.com/large-image.jpg") imageView.image = image } ``` لقد سمعت عن Di