Swift (Grand Central Dispatch) में बैकग्राउंड थ्रेड पर कार्यों को सही तरीके से कैसे करें
सभी को नमस्ते! मैं Swift और iOS डेवलपमेंट में नौसिखिया हूँ। मैं इंटरनेट से इमेज डाउनलोड करने के लिए एक सरल ऐप लिख रहा हूँ। जब मैं "लोड करें" बटन दबाता हूँ, तो इमेज दिखने तक इंटरफ़ेस कुछ सेकंड के लिए हैंग हो जाता है। मैंने सुना है कि मुख्य थ्रेड (UI) को ब्लॉक न करने के लिए बैकग्राउंड थ्रेड का उपयोग करना चाहिए। लेकिन मुझे समझ नहीं आता कि Swift में इसे सही तरीके से कैसे किया जाए।
यह मेरा वर्तमान कोड है:
```swift
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
@IBAction func loadImageTapped(_ sender: UIButton) {
// समस्या: यह कोड मुख्य थ्रेड पर चलता है
let url = URL(string: "https://example.com/large-image.jpg")!
let data = try! Data(contentsOf: url)
imageView.image = UIImage(data: data)
}
}
```
मैंने `DispatchQueue.global().async` का उपयोग करने की कोशिश की, लेकिन इसके बाद इमेज अपडेट नहीं होती। कृपया बताएं कि बैकग्राउंड में डेटा लोड करने और फिर UI को अपडेट करने का सही तरीका क्या है? और "main thread" क्या है?