Download Image from URL

 


import UIKit

import Foundation


let imgCache = NSCache<NSString, AnyObject>()


class Utility: NSObject {

    static func getImageFromURlString(_ urlStr: String, completion: @escaping (UIImage?)->Void)  {

        if let cachedImg = imgCache.object(forKey: NSString(string: urlStr)) as? UIImage {

            completion(cachedImg)

            return

        }

        

        let url = URL(string: urlStr)

        if let url = url {

            DispatchQueue.global(qos: .background).async {

                URLSession.shared.dataTask(with: url) { (data, res, err) in

                    if let dataNew = data, let img = UIImage(data: dataNew) {

                        imgCache.setObject(img, forKey: NSString(string: urlStr))

                        completion(img)

                    }else {

                        completion(nil)

                    }

                }.resume()

            }

        }

    }

}


Comments

Popular posts from this blog

SubString in Swift

PUSH Notification