返回 导航

Swift

hangge.com

Swift - 异步加载图片

作者:hangge | 2015-04-22 11:25
(本文代码已升级至Swift4)

下面以加载hangge.com的logo图为例,演示如何使用异步请求加载图片数据。

1,使用NSURLConnection(不推荐)

由于NSURLConnection自iOS9起就被废弃,所以不再建议使用这个方法。而是使用后面的URLSession来替代。
//定义URL
let imgURL = URL(string:"http://hangge.com/blog/images/logo.png")!
//定义URLRequest
let request = URLRequest(url:imgURL)
//异步获取图片
NSURLConnection.sendAsynchronousRequest(request, queue: OperationQueue.main,
                                        completionHandler: { (response, data, error) in
    //将图片数据赋予UIImage
    let img = UIImage(data:data!)
    self.BgImageView.image = img
})


2,使用URLSession(推荐)

//创建URL对象
let url = URL(string:"http://hangge.com/blog/images/logo.png")!
//创建请求对象
let request = URLRequest(url: url)

let session = URLSession.shared
let dataTask = session.dataTask(with: request, completionHandler: {
    (data, response, error) -> Void in
    if error != nil{
        print(error.debugDescription)
    }else{
        //将图片数据赋予UIImage
        let img = UIImage(data:data!)
        self.BgImageView.image = img
    }
}) as URLSessionTask

//使用resume方法启动任务
dataTask.resume()
评论

全部评论(4)

回到顶部