我有一个iOS应用程序,使用NSURLRequest每秒发送数百个HTTP请求。它始终通过WiFi,因此性能很好,每个响应的内容都不同,所以我通过NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
禁用了缓存:
let request = NSURLRequest(URL: requestURL,
cachePolicy: .ReloadIgnoringLocalCacheData, timeoutInterval: 0.1)
但是,NSURLRequest
仍在将数据写入磁盘 - 只需几分钟即可完成数百兆字节。
这是特别令人担忧的,因为我的应用程序用于数据监控,并且可能一次运行几个小时 - 并且NSURLRequest每秒写入磁盘数百次......我担心闪存可能会磨损在这些条件下,即使我认为它有磨损平衡。
如何阻止NSURLRequest
将缓存数据写入磁盘?
答案 0 :(得分:1)
NSURLRequest
的缓存策略仅控制是否以及如何读取缓存,而不是是否将写入下载的数据。
如果您将NSURLRequest
与NSURLSession
一起使用,请在您的委托中实施
URLSession(_:dataTask:willCacheResponse:completionHandler:)
方法,并使用nil参数调用completionHandler。
如果您使用NSURLConnection
,则类似的委托调用有效;有关详细信息,请参阅this question。