使用同步代码通常是一种不好的做法。 通常你可以获得图像异步:
final private func downloadFrom(urlString: String?){ self.imageView.image = nil guard let urlString = urlString, let myURL = URL(string: urlString) else{ return } let session = URLSession.shared self.task = session.dataTask(with: myURL) { (data: Data?, response: URLResponse?, error: Error?) in if let error = error { print(error) return } guard let data = data else{ return } if 200 ... 299 ~= statusCode { self.loadImage(data: data) }else{ // self.manageError(data: data) } } self.task?.resume() } final private func loadImage(data : Data){ let image = UIImage(data: data) DispatchQueue.main.async { self.imageView.image = image } }