Swift - 异步加载图片
(本文代码已升级至Swift4)
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()
航哥,第二个方法第14行self.BgImageView.image = img这个BgImageView是什么意思啊?
用不了啊,运行进if error != nil{
print(error.debugDescription)运行这个了
}else{
//将图片数据赋予UIImage
let img = UIImage(data:data!)
self.BgImageView.image = img
}
站长辛苦 真的很不错 您的博客
如果页面上有多 ImageView ,我怎么能在回调中知道要修改哪个 ImageView ?