Я новичок в iOS-разработчике, и я не понимаю, что кто-то думает. Так что у меня есть gz-файл и внутри gzip есть xml-файл. Мне нужно скачать gz-файл, каждый раз, когда пользователь запускает приложение. В первый раз, когда я запускаю свое приложение, я использую этот код для получения данных. Проблема в том, что мой xml-файл был отключен на сервере в течение нескольких дней, и мое приложение всегда начиналось без проблем и отображало данные без проблем. Итак, все мои файлы были кэшированы на устройстве ?. Я хочу, чтобы мои данные извлекались каждый раз, когда пользователь запускал приложение. Я не уверен, что я сделал что-то неправильно? БлагодарностиURL-адрес кэшированных данных
let url = NSURL(string: "http://sitename/xxx.gz")
if url != nil {
let task = URLSession.shared.dataTask(with: url! as URL, completionHandler: { (data, response, error) -> Void in
if error == nil {
let nsdata = data as NSData?
let content = nsdata?.gunzipped()
let dataContent = content as Data?
let urlContent = NSString(data: dataContent!, encoding: String.Encoding.ascii.rawValue) as NSString!
let xml = XMLParser()
xml.getDataforTable(data: urlContent as! String)
NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "XmlDataLoaded"), object: nil))
} else {
NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "DataNotLoaded"), object: nil))
}
})
task.resume()
}
Где вы пишете это piec e кода в вашем проекте? Я имею в виду, какой файл? Переместите этот код в метод 'didLaunchWithOptions:' 'AppDelegate''. – Adeel
Какое уведомление было опубликовано? Что произошло после уведомления? –
Я называю это в моем контроллере просмотра загрузки. Таким образом, у меня есть viewcontroller, и в viewdidload я вызываю эту функцию, если все в порядке «уведомление XmlDataLoaded», я загружаю следующий диспетчер представлений. – xNinjaSwift