Swift: pode salvar UIImage em UserDefaults? [duplicado]

Oct 27 2020

É possível salvar dados do tipo UIImage para UserDefaults em Swift? se é possível então como funciona ??

Agradeço antecipadamente

Respostas

user1374 Oct 27 2020 at 19:17

É tecnicamente possível, mas não é aconselhável. Em vez disso, salve a imagem no disco. NSUserDefaults destina-se a pequenas configurações, não a grandes arquivos de dados binários.

import UIKit

// Load Image
let image = UIImage(named: "landscape")

// Convert to Data
if let data = image?.pngData() {
    // Create URL
    let documents = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
    let url = documents.appendingPathComponent("landscape.png")

    do {
        // Write to Disk
        try data.write(to: url)

        // Store URL in User Defaults
        UserDefaults.standard.set(url, forKey: "background")

    } catch {
        print("Unable to Write Data to Disk (\(error))")
    }
}