停止NSURLRequest写入缓存

时间:2014-10-06 01:33:49

标签: ios swift nsurlrequest appkit nsurlrequestcachepolicy

我有一个iOS应用程序,使用NSURLRequest每秒发送数百个HTTP请求。它始终通过WiFi,因此性能很好,每个响应的内容都不同,所以我通过NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData禁用了缓存:

let request = NSURLRequest(URL: requestURL,
      cachePolicy: .ReloadIgnoringLocalCacheData, timeoutInterval: 0.1)

但是,NSURLRequest仍在将数据写入磁盘 - 只需几分钟即可完成数百兆字节。

这是特别令人担忧的,因为我的应用程序用于数据监控,并且可能一次运行几个小时 - 并且NSURLRequest每秒写入磁盘数百次......我担心闪存可能会磨损在这些条件下,即使我认为它有磨损平衡。

如何阻止NSURLRequest将缓存数据写入磁盘?

1 个答案:

答案 0 :(得分:1)

NSURLRequest的缓存策略仅控制是否以及如何读取缓存,而不是是否将写入下载的数据。

如果您将NSURLRequestNSURLSession一起使用,请在您的委托中实施 URLSession(_:dataTask:willCacheResponse:completionHandler:)方法,并使用nil参数调用completionHandler。

如果您使用NSURLConnection,则类似的委托调用有效;有关详细信息,请参阅this question