如何使用Alamofire在swift中加载图像
发布时间:2020-12-14 05:54:00 所属栏目:百科 来源:网络整理
导读:我有一个集合视图控制器,它通过URL加载图像异步。 (类似Instegram的东西) 我正在寻找实现装载图像部分的最佳方法。 请告诉我你觉得怎么样 第一种方式 – 没有任何外部图书馆: let downloadQueue = dispatch_queue_create("com.pro.asyncImages",nil) dispa
我有一个集合视图控制器,它通过URL加载图像异步。
(类似Instegram的东西) 我正在寻找实现装载图像部分的最佳方法。 请告诉我你觉得怎么样 第一种方式 – 没有任何外部图书馆: let downloadQueue = dispatch_queue_create("com.pro.asyncImages",nil) dispatch_async(downloadQueue){ var data = NSData(contentsOfURL: NSURL(string: pictureUrl!)!) var image: UIImage? if (data != nil){ image = UIImage(data: data!) } dispatch_async(dispatch_get_main_queue()){ uiImageView.image = image } } 第二种方法 – 使用Alamofire(请求属于Alamofire) if let mediaUrl = info.mediaUrl { request(.GET,mediaUrl).response(){ (_,_,data,_) in let image = UIImage(data: data! as NSData) imageView.image = image } } 最后,我读到AFNetworking,正在将url异步加载到urlImage中做得很好,这是我想要做的。 AFNetworking对于这项任务更好吗? (然后Alamofire) 请说明哪种方法是最好的,我的需求是表现,指责,缓存。
作者在Alamofire
README.md中提到:
所以回答你的问题:
是! 但是,如果仍然要使用香草Alamofire项目,可以通过以下方式获取图像: Alamofire.request(.GET,"https://robohash.org/123.png").response { (request,response,error) in self.myImageView.image = UIImage(data: data,scale:1) } 附: 但是,如果您只想加载映像(当然异步) – 您根本不需要使用Alamofire或AFNetworking。 extension UIImageView { public func imageFromUrl(urlString: String) { if let url = NSURL(string: urlString) { let request = NSURLRequest(URL: url) NSURLConnection.sendAsynchronousRequest(request,queue: NSOperationQueue.mainQueue()) { (response: NSURLResponse!,data: NSData!,error: NSError!) -> Void in self.image = UIImage(data: data) } } } } 并使用它: myImageView.imageFromUrl("https://robohash.org/123.png") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |