0
这是我的代码:Alamofire不能立即保存图像到磁盘
let destination = DownloadRequest.suggestedDownloadDestination(for: .documentDirectory)
_ = Alamofire.download("http://www.sample.com/images/sample.png", to: destination)
let documentsDirectory = FileManager.SearchPathDirectory.documentDirectory
let userDomainMask = FileManager.SearchPathDomainMask.userDomainMask
let paths = NSSearchPathForDirectoriesInDomains(documentsDirectory, userDomainMask, true)
if let dirPath = paths.first {
let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent("sample.png")
if let image = UIImage(contentsOfFile: imageURL.path) {
self.sampleImage.image = image
}
}
我第一次运行该代码,图像无;所以我在下载时设置了一个断点,刚刚通过下载代码,检查了磁盘上的目录并且图像没有保存到文件(这就是为什么图像是零)。在运行UIViewContoller
类中的所有代码之后,该文件已成功保存到磁盘,并且第二次导航到ViewController时加载了该映像。
有什么方法可以下载图像,立即保存到磁盘,然后显示图像?
我试过把下载代码放在viewWillAppear
和从viewDidLoad
的磁盘代码加载。我也尝试用完成块创建一个方法,并将下载代码放入完成块中。
完美!谢谢你的帮助! – Sicypher