2016-10-06 6 views
0

Я новичок в 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() 
    } 
+0

Где вы пишете это piec e кода в вашем проекте? Я имею в виду, какой файл? Переместите этот код в метод 'didLaunchWithOptions:' 'AppDelegate''. – Adeel

+0

Какое уведомление было опубликовано? Что произошло после уведомления? –

+0

Я называю это в моем контроллере просмотра загрузки. Таким образом, у меня есть viewcontroller, и в viewdidload я вызываю эту функцию, если все в порядке «уведомление XmlDataLoaded», я загружаю следующий диспетчер представлений. – xNinjaSwift

ответ

0
enter code here 

в AppDelegate.swift

FUNC приложение (приложение: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

вызове метода веб-службы внутри этот метод

Смежные вопросы