如何使用Alamofire在swift中加载图像

前端之家收集整理的这篇文章主要介绍了如何使用Alamofire在swift中加载图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个集合视图控制器,它通过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)
如果没有,我不明白如何添加AFNetworking到我的快速项目,除了添加#import“AFNetworking.h”我需要添加哪些文件

请说明哪种方法是最好的,我的需求是表现,指责,缓存。
视图采集控制器像Instegram一样运行,并且正在加载图像,同时向下滚动。
我希望我对我所需要的很清楚,
谢谢

作者在Alamofire README.md中提到:

When should I use AFNetworking?

  • UIKit extensions,such as asynchronously loading images to UIImageView

所以回答你的问题:

So is AFNetworking is better for this task?

是!

但是,如果仍然要使用香草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")

猜你在找的Swift相关文章