【发布时间】:2015-04-22 13:59:40
【问题描述】:
我有一个集合视图控制器,它通过 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 是否更适合这项任务? (然后是阿拉莫菲尔) 如果没有,我不明白如何将 AFNetworking 添加到我的 swift 项目中,除了添加 #import “AFNetworking.h” 之外,我还需要添加哪些文件?
请解释哪种方法最好,我的需求是性能,指责,缓存。 视图集合控制器的行为类似于 Instegram 并在向下滚动时加载图像。 我希望我足够清楚我需要什么, 谢谢
【问题讨论】:
-
AFNetworking 的编码器与 Alamofire 相同,我认为是相同的实现,但在 Swift 中
标签: swift afnetworking alamofire