Eu estou usando o SwiftyJSON para ler a resposta da API.
Eu quero armazenar a resposta JSON localmente no dispositivo do usuário, criando o arquivo JSON para offline.
Minha função que retorna cria JSON:
Alamofire.request(HostURL)
.responseJSON { response in
guard response.result.isSuccess else {
debugPrint("getCourseDataFromCourseId: Error while fetching tags (String(describing: response.result.error))")
failure(response.result.error! as NSError)
return
}
guard response.result.error == nil else {
debugPrint(response.result.error!)
return
}
guard let json = response.result.value else {
debugPrint("JSON Nil")
return
}
let swiftJson = JSON(json)
Respostas:
3 para resposta № 1Então agora você simplesmente precisa obter dados do JSON
e depois usar write(to:)
método de Data
armazenar JSON
resposta em DocumentDirectory
if let data = try? json.rawData() {
let fileUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
.appendingPathComponent("Sample.json") // Your json file name
try? data.write(to: fileUrl)
}
Editar: Agora mais tarde, quando você quiser ler JSON
a partir deste arquivo, acesse-o desta maneira.
if let data = try? Data(contentsOf: fileURL) {
let json = JSON(data: data)
}