我正在使用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