Wie man Code korrekt in einem Hintergrund-Thread in Swift ausführt (Grand Central Dispatch)?
Hallo zusammen! Ich bin neu in der iOS-Entwicklung mit Swift und habe ein Problem mit Multithreading. Ich habe eine App, die Bilder aus dem Internet lädt. Wenn ich die Lade-Funktion im Haupt-Thread aufrufe, friert die Oberfläche für einige Sekunden ein – das Scrollen der Tabelle ruckelt, Animationen verschwinden. Ich verstehe, dass ich schwere Operationen (Netzwerkanfragen, Datenverarbeitung) in einen Hintergrund-Thread auslagern muss, weiß aber nicht, wie ich das richtig mache.
Hier ist ein Beispiel meines Codes:
```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("Fehler beim Laden des Bildes: \(error)")
return nil
}
}
// Verwendung in viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
let image = loadImage(from: "https://example.com/large-image.jpg")
imageView.image = image
}
```
Ich habe von Di gehört