Avatar ·

如何在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?以及应该怎么做?