2017-01-28 2 views
0

J'ai un problème avec SWIFT 3, en essayant de désactiver le cache pour les requêtes, le serveur envoie des SMS JSON mis à jour, mais mon application affiche toujours des données anciennes. Cela se produit uniquement lorsque les données cellulaires sont activées, avec WIFI tout fonctionne. S'il vous plaît, conseillez comment résoudre ce problème, voici mon code. Merci!Impossible de désactiver le cache pour les demandes

let tim: String = String(Date().timeIntervalSinceReferenceDate) 
    let urlTim = url + "?timref=" + tim 


    URLCache.shared.removeAllCachedResponses() 
    URLCache.shared.diskCapacity = 0 
    URLCache.shared.memoryCapacity = 0 
    if let cookies = HTTPCookieStorage.shared.cookies { 
     for cookie in cookies { 
      HTTPCookieStorage.shared.deleteCookie(cookie) 
     } 
    } 

    var request = URLRequest(url: URL(string: urlTim)!, cachePolicy: URLRequest.CachePolicy.reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 10) 

    request.httpMethod = "POST" 
    request.httpBody = post.data(using: .utf8) 
    request.cachePolicy = URLRequest.CachePolicy.reloadIgnoringLocalAndRemoteCacheData 

    let task = URLSession.shared.dataTask(with: request) 
    { 
     data, response, error in guard let data = data, error == nil else { print("Network Error"); err?(); return; } 
     if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { print("Network 200 error"); err?(); return; } 
     self.jsonResponse = String(data: data, encoding: .utf8)!; 
    } 
    task.resume() 

Répondre

0

Alors voici ma solution:

Si quelqu'un fait face à cette situation et a oublié d'ajouter l'option cachepolicy puis un cache propre doivent manuellement. Après le code va fonctionner.