下载的图像未显示iOS Swift

时间:2016-05-14 20:34:47

标签: ios swift image request nsurl

我刚开始学习如何在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()
    }
}

2 个答案:

答案 0 :(得分:3)

您的代码工作正常,除非您使用的是错误的网址,因此您的downloadedImage即将来临nil,因为它无法创建{ {1}}对于此数据,正确的网址为:

<强> https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Angels_Stadium.JPG/1920px-Angels_Stadium.JPG

按照上面的代码更新您的代码,一切都应该正常工作:

UIImage

我希望这对你有所帮助。

答案 1 :(得分:1)

如果从NSURLSession收到错误,则当前代码将无提示失败。不要那样做。

在数据任务的完成块中添加一个print语句,记录错误和数据的值。将数据转换为图像后,还要记录下载的图像。

最后,向我们展示你的performUIUpdatesOnMain函数的代码。