下载的图片未显示 iOS Swift
Downloaded image not being displayed iOS Swift
我刚刚开始学习如何在 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()
}
}
如果您从 NSURLSession 收到错误,您当前的代码将无提示地失败。不要那样做。
在数据任务的完成块中添加打印语句,记录错误值和数据值。将数据转换为图像后,还要记录 downloadedImage。
最后,向我们展示您的 performUIUpdatesOnMain 函数的代码。
除了您使用的 错误 URL 之外,您的代码工作正常,因此您的 downloadedImage
即将推出 nil
因为它不能为这个数据创建一个 UIImage
,所以正确的 URL 是:
将您的代码更新为上面的代码,一切都应该可以正常工作:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let imageURL = NSURL(string: "https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Angels_Stadium.JPG/1920px-Angels_Stadium.JPG")!
let task = NSURLSession.sharedSession().dataTaskWithURL(imageURL) { (data, response, error) in
guard error == nil, let data = data else { return }
let downloadedImage = UIImage(data: data)
dispatch_async(dispatch_get_main_queue()) {
self.imageView.image = downloadedImage
}
}
task.resume()
}
希望对你有所帮助。
我刚刚开始学习如何在 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()
}
}
如果您从 NSURLSession 收到错误,您当前的代码将无提示地失败。不要那样做。
在数据任务的完成块中添加打印语句,记录错误值和数据值。将数据转换为图像后,还要记录 downloadedImage。
最后,向我们展示您的 performUIUpdatesOnMain 函数的代码。
除了您使用的 错误 URL 之外,您的代码工作正常,因此您的 downloadedImage
即将推出 nil
因为它不能为这个数据创建一个 UIImage
,所以正确的 URL 是:
将您的代码更新为上面的代码,一切都应该可以正常工作:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let imageURL = NSURL(string: "https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Angels_Stadium.JPG/1920px-Angels_Stadium.JPG")!
let task = NSURLSession.sharedSession().dataTaskWithURL(imageURL) { (data, response, error) in
guard error == nil, let data = data else { return }
let downloadedImage = UIImage(data: data)
dispatch_async(dispatch_get_main_queue()) {
self.imageView.image = downloadedImage
}
}
task.resume()
}
希望对你有所帮助。