Skip to content

Instantly share code, notes, and snippets.

@sgl0v
Created November 3, 2019 18:19
Show Gist options
  • Save sgl0v/77bf7fc5b1d5364b5dd9a51e3560ed06 to your computer and use it in GitHub Desktop.
Save sgl0v/77bf7fc5b1d5364b5dd9a51e3560ed06 to your computer and use it in GitHub Desktop.
extension ImageCache {
func image(for url: URL) -> UIImage? {
lock.lock(); defer { lock.unlock() }
// the best case scenario -> there is a decoded image
if let decodedImage = decodedImageCache.object(forKey: url as AnyObject) as? UIImage {
return decodedImage
}
// search for image data
if let image = imageCache.object(forKey: url as AnyObject) as? UIImage {
let decodedImage = image.decodedImage()
decodedImageCache.setObject(image as AnyObject, forKey: url as AnyObject, cost: decodedImage.diskSize)
return decodedImage
}
return nil
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment