2016-11-04 45 views
0

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

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() 



    } 
+0

'NSURLConnection'已经过时,你应该用'NSURLSession' – Rajat

+0

兄弟去,但它在我的代码 –

回答

0

用于保存

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) 

它的自动取款图像

+0

工作的兄弟我是需求量的存储第一本地内存然后使用这些图像 –

+0

var image = .... //然而你创建/得到一个UIImage let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true)[0] as String let destinationPath = documentsPath.stringByAppen dingPathComponent(“filename.jpg”) UIImageJPEGRepresentation(image,1.0).writeToFile(destinationPath,atomically:true) – MOMMH

+0

bro使用nsurlconnection如何加载图像 –

0

试试这个:

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!) 

来源:https://stackoverflow.com/a/27517280/3901620

+0

let data = try? NSData(contentsOfURL:(NSURL(string:url as String))!) let image = UIImage(data:data !!) var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true) let documentsDirectory = paths [0] 让PATH = NSURL:(!图片)!(fileURLWithPath documentsDirectory).URLByAppendingPathComponent(image_name1作为字符串)!absoluteString 打印( “文件路径为\(路径)”) 让数据1 = UIImagePNGRepresentation 令结果= DATA1 .writeToFile (path !,原子地:true) print(“result is \(result)”) 它显示为false –

+0

您是否在数据中获取了字节? – KKRocks

相关问题