Skip to content

Instantly share code, notes, and snippets.

@KalpeshTalkar
Created April 1, 2016 12:32
Show Gist options
  • Save KalpeshTalkar/b3314ac735b69b5d50540525c5d0999b to your computer and use it in GitHub Desktop.
Save KalpeshTalkar/b3314ac735b69b5d50540525c5d0999b to your computer and use it in GitHub Desktop.
KImageCache, a swift class for loading images from url and caching.
//
// KImageCache.swift
//
// Created by Kalpesh Talkar on 01/04/16.
// Copyright © 2016 Kalpesh. All rights reserved.
//
import UIKit
class KImageCache {
var imageCache = [String:UIImage]()
func getImage(url: String, imageView: UIImageView, defaultImage: String) {
if let img = imageCache[url] {
imageView.image = img
} else {
// WARNING: Depricated
/*let request: NSURLRequest = NSURLRequest(URL: NSURL(string: url)!)
let mainQueue = NSOperationQueue.mainQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: mainQueue, completionHandler: { (response, data, error) -> Void in
if error == nil {
let image = UIImage(data: data!)
self.imageCache[url] = image
dispatch_async(dispatch_get_main_queue(), {
imageView.image = image
})
}
else {
imageView.image = UIImage(named: defaultImage)
}
})*/
NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: url)!) { (data, response, error) in
dispatch_async(dispatch_get_main_queue(),{
if error == nil {
let image = UIImage(data: data!)
self.imageCache[url] = image
imageView.image = image
}
else {
imageView.image = UIImage(named: defaultImage)
}
})
}.resume()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment