我刚开始学习如何在iOS Swift中发出网络请求。下面是一个非常简单的图像请求,其中一切似乎都在工作。任务下载图像时没有错误,但imageView从不显示下载的图像。任何帮助将不胜感激。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let imageURL = NSURL(string: "https://en.wikipedia.org/wiki/Baseball#/media/File:Angels_Stadium.JPG")!
let task = NSURLSession.sharedSession().dataTaskWithURL(imageURL) { (data, response, error) in
if error == nil {
let downloadedImage = UIImage(data: data!)
performUIUpdatesOnMain {
self.imageView.image = downloadedImage
}
}
}
task.resume()
}
}
答案 0 :(得分:3)
您的代码工作正常,除非您使用的是错误的网址,因此您的downloadedImage
即将来临nil
,因为它无法创建{ {1}}对于此数据,正确的网址为:
按照上面的代码更新您的代码,一切都应该正常工作:
UIImage
我希望这对你有所帮助。
答案 1 :(得分:1)
如果从NSURLSession收到错误,则当前代码将无提示失败。不要那样做。
在数据任务的完成块中添加一个print语句,记录错误和数据的值。将数据转换为图像后,还要记录下载的图像。
最后,向我们展示你的performUIUpdatesOnMain函数的代码。