为什么在 Swift 中用户将图像保存到库时不显示加载指示器?

Why don't loading indicator show when user save image to library in Swift?

我想构建让用户可以将图像保存到他们的库中的功能。问题是需要很长时间来处理,所以我想显示加载指示器让用户稍等片刻。但是加载不显示。我该如何解决我的问题?感谢您的帮助。我的代码如下:

@objc func saveImage(sender: UIButton) {
    DispatchQueue.main.async {
        showLoading(viewCtrl: self)
        let imageString = self.arrayPost[sender.tag].image
        if let url = URL(string: imageString),
            let data = try? Data(contentsOf: url),
            let image = UIImage(data: data) {
            UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
            showSuccess(viewCtrl: self)
        }
    }
}

我想也许 let data = try? Data(contentsOf: url) 阻塞了 UI 线程一段时间。尝试将此任务置于后台。

在后台线程上保存图像并在主线程上执行 UI 处理

showLoading(viewCtrl: self)

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in

        // save image code here

        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            hideLoading(viewCtrl: self)
            showSuccess(viewCtrl: self)
        })
    });