我正在使用SDWeb
Image库来缓存我的UICollectionView中的Web图像:
cell.packItemImage.sd_setimage(with: URL(string: smileImageUrl[indexPath.row]))
但我想将缓存的图像本地保存在文件中,而不是再次下载它们
FileManager.default.createFile(atPath: newPath,contents: Data(contentsOf: URL(string: snapchildvalue[Constants.smiles.smileImageUrl] as! String)!),attributes: nil)
有没有办法获取缓存图像的数据
解决方法
SDWebImage默认自动缓存下载的图像.您可以使用SDImageCache从缓存中检索图像.当前应用会话有一个内存缓存,它会更快,并且有磁盘缓存.用法示例:
if let image = SDImageCache.shared().imageFromdiskCache(forKey: imageURL.absoluteString) { //use image } if let image = SDImageCache.shared().imageFromMemoryCache(forKey: imageURL.absoluteString) { //use image }
还要确保在文件中导入SDWebImage. (如果您使用的是Swift / Carthage,它将导入WebImage