2016-12-30 17 views
2

我想从一个URL保存图像,然后使用他们我的应用程序中。保存图像,并使其持续IOS斯威夫特

我救了他们的变量,但我怎么可以让他们继续下去,直到用户删除应用程序?

下面是变量

let backgroundURL:NSURL? = NSURL(string: "http://i.imgur.com/4AiXzf8.jpg") 
    DispatchQueue.global(qos: .userInitiated).async { 
     let backgroundData:NSData? = NSData(contentsOf: backgroundURL as! URL) 
     DispatchQueue.main.async { 
      if (backgroundData != nil) { 
       background = UIImage(data: backgroundData! as Data 
      } 
     } 
    } 

我如何保存的背景图像坚持保存图像的代码?

谢谢!

+0

来电getDocumentsDirectory你不应该在你的问题解决方案复制。你应该接受一个答案,或者如果你找到自己的答案,请为你的问题添加一个答案。 – FredericP

+0

完成,谢谢 –

+0

不客气! – FredericP

回答

-1

对于斯威夫特3

// Assuming background is UIImage 
if let image = background { 
    if let data = UIImagePNGRepresentation(image) { 
     let filename = getDocumentsDirectory().appendingPathComponent("copy.png") 
     try? data.write(to: filename) 
    } 
} 

即()

func getDocumentsDirectory() -> URL { 
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) 
    let documentsDirectory = paths[0] 
    return documentsDirectory 
} 
+0

感谢Museer安萨里语法! –

+0

@MikeMe欢迎bro :)快乐的编码 –

0

我建议你存储的图像在你的文档目录下面的代码,你将能够使用你下载的图像,并转换为的UIImage从NSData的

雨燕2.3

let documentsDirectoryURL = try! NSFileManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true) 
// Name of Image you want to store 
let fileURL = documentsDirectoryURL.URLByAppendingPathComponent("ImageName.jpg") 

if !NSFileManager.defaultManager().fileExistsAtPath(fileURL.path!) { 
    if UIImageJPEGRepresentation(image, 1.0)!.writeToFile(fileURL.path!, atomically: true) { 
     print("Image saved") 
    } else { 
     print("error saving Image") 
    } 
} else { 
    print("Image name already exists") 
} 

后这里是你如何能得到图像

let fileManager = NSFileManager.defaultManager() 
let imagePAth = (self.getDirectoryPath() as NSString).stringByAppendingPathComponent("imageName.jpg") 

if fileManager.fileExistsAtPath(imagePAth){ 
let myImage: UIImage = UIImage(contentsOfFile: imagePAth) 
} 
else{ 
print("No Such Image") 
} 
+0

我想在swift 3中'UIImageJPEGRepresentation'会变成swift的'Data',所以它应该是'write(to:fileURL,options:)'? – Tj3n

+0

是啊,我应该有答案何况这是为SWIFT 2.3 –

+0

谢谢Dev_Tandel –