如何使用NSURlConnection从Url下载图像保存在手机缓存中



我正在使用NSUrlconnection调用api,但现在我也从api接收图像,所以我不知道如何加载图像&保存到手机的本地内存中,因为这些图像将在应用程序中进一步使用。请帮帮我。如何使用&显示本地保存的图像。我使用下面的函数来加载图像,但NSURLSession.sharedSession()不会进入队列。

 func saveImage(url:NSString,image_name1:NSString)
    {
        NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: url as String)!, completionHandler: { (data, response, error) -> Void in
                        if error != nil {
                            print(error)
                            return
                        }
                        dispatch_async(dispatch_get_main_queue(), { () -> Void in
                            let image = UIImage(data: data!)
                            var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
                            let documentsDirectory = paths[0]
                            let path = NSURL(fileURLWithPath: documentsDirectory).URLByAppendingPathComponent(image_name1 as String)!.absoluteString
                            print(" file path is (path)")
                            let data = UIImagePNGRepresentation(image!)
                            data!.writeToFile(path!, atomically: true)
                        })
                    }).resume()

   }

for save

var image = ....  // However you create/get a UIImage
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let destinationPath = documentsPath.stringByAppendingPathComponent("filename.jpg")
UIImageJPEGRepresentation(image,1.0).writeToFile(destinationPath, atomically: true)

为现金

https://github.com/onevcat/Kingfisher

荚"翠鸟"

let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)

它是自动现金图像

试试这个:

let data = try? Data(contentsOf: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check / try-catch
imageView.image = UIImage(data: data!)

From: https://stackoverflow.com/a/27517280/3901620

最新更新