2016-12-30 4 views
2

Я хотел бы сохранить изображения с URL-адреса, а затем использовать их в своем приложении.Сохранить изображение с URL-адреса и сохранить его IOS Swift

Я сохранил их в переменных, но как я могу их сохранить до тех пор, пока пользователь не удалит приложение?

Вот код для сохранения изображений в переменных

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

Вы не должны копировать решения в вашем вопросе. Вы должны принять один ответ, или если вы нашли ответ, добавьте ответ на свой вопрос. – FredericP

+0

сделано, спасибо –

+0

Добро пожаловать! – FredericP

ответ

-1

Для Swift 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) 
    } 
} 

Это называют в getDocumentsDirectory()

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

Спасибо Museer Ansari! –

+0

@MikeMe Welcome bro :) Счастливое кодирование –

0

Я хотел бы предложить вам, чтобы сохранить изображение в каталоге документа ниже код, который вы сможете использовать после того, как вы загрузили изображение и преобразуется в UIImage из NSData

Swift 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

Thanks Dev_Tandel –