我对下面的代码有一些问题。虽然它有效,但存在一些时间问题。
首先让我说一下我的期望,我想应该在数据下载完成并且我的图像可以使用时运行完成处理程序。但现实似乎完全不同。当我尝试它时,立即调用完成处理程序(我可以在控制台中看到“一切正常”),好像一切都是瞬时的。但是图像实际显示要晚得多。我错过了什么?
let imageURL = URL(string: myURLString)
session = URLSession.shared,
_ = session.dataTask(with: imageURL) {[weak self]
(data: Data?, response: URLResponse?, error: Error?) in
if error == nil {
print("All OK")
self?.theImage = UIImage(data: data!)
self?.theView.image = self?.theImage
} else {print(error!)}
DispatchQueue.main.async {
self?.activityIndicator.stopAnimating()
self?.theView.setNeedsDisplay()
}
}.resume()