2016-02-18 30 views

回答

0

通过继承NSURLCache并重写它的高速缓存方法解决。

在每个被覆盖的方法,我从所述请求之前调用超类的方法除去查询项。

例如:

override func storeCachedResponse(cachedResponse: NSCachedURLResponse, forRequest request: NSURLRequest) { 
     let strippedRequest = removeQueryItemFromRequest(self.queryItemName, request: request) 

     if let url = strippedRequest.URL { 
      let response = NSURLResponse(URL: url, MIMEType: cachedResponse.response.MIMEType, expectedContentLength: Int(cachedResponse.response.expectedContentLength), textEncodingName: cachedResponse.response.textEncodingName) 
      let newCachedResponse = NSCachedURLResponse(response: response, data: cachedResponse.data) 

      super.storeCachedResponse(newCachedResponse, forRequest: strippedRequest) 
     } 
     else { 
      super.storeCachedResponse(cachedResponse, forRequest: request) 
     } 
    } 

self.queryItemName是存储的属性到自定义初始化通过。