0

我有一个使用 NSURLRequest 每秒发送数百个 HTTP 请求的 iOS 应用程序。它总是在 WiFi 上,所以性能很好,而且每个响应的内容都不同,所以我通过以下方式禁用了缓存NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData

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

然而,NSURLRequest仍在将数据写入磁盘——短短几分钟内就写入了数百兆字节。

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

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

4

1 回答 1

1

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

如果您使用NSURLRequestwith NSURLSession,请在您的委托中实现该 URLSession(_:dataTask:willCacheResponse:completionHandler:)方法,并使用 nil 参数调用 completionHandler。

如果您使用的是类似的委托调用NSURLConnection;有关详细信息,请参阅此问题

于 2014-10-06T17:20:21.543 回答