Ios NSURLCHACHE随Mashery的变化而变化”;sig=XXXXXX";查询项

Ios NSURLCHACHE随Mashery的变化而变化”;sig=XXXXXX";查询项,ios,nsurl,nsurlcache,mashery,Ios,Nsurl,Nsurlcache,Mashery,当URL包含更改的查询项时,是否可以使用NSURLCache缓存响应?例如,我们添加了Mashery所需的“sig=XXXXXX”查询项,每个请求都会更改该查询项 如果没有,是否有解决方法?通过子类化NSURLCache并重写其缓存方法来解决 在每个重写的方法中,我在调用超类的方法之前从请求中删除查询项 例如: override func storeCachedResponse(cachedResponse: NSCachedURLResponse, forRequest request: NS

当URL包含更改的查询项时,是否可以使用
NSURLCache
缓存响应?例如,我们添加了Mashery所需的“sig=XXXXXX”查询项,每个请求都会更改该查询项


如果没有,是否有解决方法?

通过子类化
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
是传递给自定义初始值设定项的存储属性