如何使用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, data, 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")
翻译自:https://stackoverflow.com/questions/28636622/how-to-load-image-in-swift-using-alamofire

转载注明原文:如何使用Alamofire在swift中加载图像