Olá pessoal.
O conteúdo da aula 06 do curso de Swift parte 3 está desatualizado.
Como fazer para serializar e desserializar dados em um arquivo na versão mais recente?
Olá pessoal.
O conteúdo da aula 06 do curso de Swift parte 3 está desatualizado.
Como fazer para serializar e desserializar dados em um arquivo na versão mais recente?
Consegui fazer com o código abaixo:
override func viewDidLoad() {
carregarRefeicoes()
}
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
}
func getURLRefeicoes() -> URL {
return getDocumentsDirectory().appendingPathComponent("refeicoes_info.dados")
}
func add(_ refeicao: Refeicao) {
meals.append(refeicao)
tableView.reloadData()
gravarRefeicoes()
}
func gravarRefeicoes() {
do {
let caminho = getURLRefeicoes()
let data = try NSKeyedArchiver.archivedData(withRootObject: meals, requiringSecureCoding: false)
try data.write(to: caminho)
} catch {
print("Couldn't write file")
}
}
func carregarRefeicoes() {
do {
let data = try Data(contentsOf: getURLRefeicoes())
if let refeicoes = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? Array<Refeicao> {
meals = refeicoes
}
} catch {
print("Couldn't read file.")
}
}