NSURLSessionConfiguration和NSMutableURLRequest的缓存策略之间的区别

时间:2016-08-23 16:37:01

标签: ios swift

我正在使用代码:

let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.requestCachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
let session = NSURLSession(configuration: configuration)
let request = NSMutableURLRequest(URL: url)
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
request.HTTPMethod = "POST"
request.HTTPBody = bodyData
let dataTask = session.dataTaskWithRequest(request) { (data: NSData?, response: NSURLResponse?, error: NSError?) in 
    //... 
}

我想知道这两者之间有什么区别,哪一个必须使用。

configuration.requestCachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData

感谢。

2 个答案:

答案 0 :(得分:2)

  

NSURLSessionConfiguration设置NSURLSession的属性   可以被NSURLRequest对象覆盖。

在这里回答: https://stackoverflow.com/a/33316897/3238178

答案 1 :(得分:0)

我认为这只是一个问题,即您是否希望从您设置的时间内将no缓存策略应用于单个请求或整个请求系列。

根据这份文件:

  

https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSessionConfiguration_class/#//apple_ref/occ/instp/NSURLSessionConfiguration/requestCachePolicy

如果您将策略应用于配置,则使用该配置在会话中创建的任何NSURLSessionTask都将采用该策略。

否则,如果您将策略应用于请求,该请求和该请求,将采用该策略。