У меня есть этот код в моих приложениях:
struct ServerConnect {
enum Result<T> {
case succes(T)
case error(String)
}
typealias completionHandler = (Result<Data >) -> ()
func getJsonFromServer(parameters: String, completion: @escaping completionHandler) {
let fullUrlString = ApiConstans.fullPath + parameters
guard let url = URL(string: fullUrlString) else {
debugPrint("\(ErrorsLabels.ServerConnect01)")
return completion(.error("\(ErrorsLabels.ServerConnect01)"))
}
URLSession.shared.dataTask(with: url) { (data, response, error) in
guard error == nil else {
debugPrint("\(ErrorsLabels.ServerConnect02)")
return completion(.error("\(ErrorsLabels.ServerConnect02)"))
}
guard let data = data else {
debugPrint("\(ErrorsLabels.ServerConnect03)")
return completion(.error("\(ErrorsLabels.ServerConnect03)"))
}
debugPrint("R> \(fullUrlString)")
return completion(.succes(data))
}.resume()
}
func getJsonProducts(lang: String?, region: Int?, completion: @escaping completionHandler) {
self.getJsonFromServer(parameters: "?action=GET_PRODUCTS&lang=\(lang!)®ion=\(region!)", completion: completion)
}
}
Я хочу сохранить данные на моем устройстве с этим кодом:
let cms = ServerConnect()
cms.getJsonProducts(lang: selectedLanguage, region: selectedRegion , completion: { (data) in
switch data {
case .succes(let data):
self.saveJsonFileToTheDisk(path: selectedLanguage + "/json/temp.json", downloadData: data)
case .error(let error):
self.errorLoginMessage(txt: "\(ErrorsLabels.MainViewControler01). \(error)", title: "Blad".localized())
break
}
})
func saveJsonFileToTheDisk(path: String, downloadData: Data){
do {
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsURL.appendingPathComponent(path)
try downloadData.write(to: fileURL, options: .atomic)
} catch { self.errorLoginMessage(txt: "\(ErrorsLabels.MainViewControler02). \(error)", title: "Blad".localized()) }
}
К сожалению, приложение не сохраняет файл вдиск (он даже не создает его).У меня ошибка:
"Папка temp.json не существует. UserInfo = PNSFilePath = Пользователи / mymac / Библиотека / Разработчик ......... / json / temp.json. .... Нет такого файла или каталога ";
Кто-нибудь знает, в чем здесь проблема?