2017-01-28 2 views
0

SWIFT 3에서 요청에 대한 캐시를 사용하지 못하게하고 서버에서 업데이트 된 JSON 텍스트를 보내지 만 내 애플리케이션에 이전 데이터가 계속 표시됩니다. 이것은 셀룰러 데이터가 켜져 있고 WIFI가 모두 작동하는 경우에만 발생합니다. 그 문제를 해결하는 방법을 알려주십시오. 여기에 제 코드가 있습니다. 감사!요청에 대한 캐시를 비활성화 할 수 없습니다.

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() 

답변

0

그래서 여기 내 솔루션입니다 :

사람이 상황에 직면하고 하나가 수동으로 깨끗한 캐시에있는 cachepolicy 옵션을 추가 할 잊어 버린 경우

. 코드가 작동하면.

관련 문제