我想下载图片,但是下载的图片必须按照特定的顺序排列。以下是我用来下载图片的代码:
func downloadImage(url: NSURL, completionHandler: (response: UIImage) -> ()){
print("Started downloading \"\(url.URLByDeletingPathExtension!.lastPathComponent!)\".")
manager.getDataFromUrl(url) { (data, response, error) in
dispatch_async(dispatch_get_main_queue()) { () -> Void in
guard let data = data where error == nil else { return }
print("Finished downloading \"\(url.URLByDeletingPathExtension!.lastPathComponent!)\".")
completionHandler(response: UIImage(data: data)!)
}
}
}
我正在使用这段代码调用downloadImage
self.downloadImage(NSURL(string: self.url)!, completionHandler: { response in
dispatch_async(dispatch_get_main_queue()) {
self.images.append(response)
}
})
问题在于图片按正确的顺序开始下载,但响应不是(这显然是因为图像的大小不同,有一个下载得更快)。所以现在的情况是所有图片都开始下载,任何先到达的图像都会添加到
images : [UIImage]
数组中。如何使 images
数组中的图像有序呢?我还尝试在调用
downloadImage
函数时删除主块。self.downloadImage(NSURL(string: self.url)!, completionHandler: { response in
self.images.append(response)
})