我一直在尝试实现从网址下载的文件的缓存。文件大小约为5 MB。 下面是我从该文件中获取的标题url:
Content-Type : application/x-zip-compressed
Content-Length : 4088083
Expires : Sun, 24 Jun 2018 20:10:51 GMT
Etag : "1e2ec46bcg24f13"
X-Powered-By : ASP.NET
Last-Modified : Thu, 22 Jun 2017 11:21:48 GMT
Accept-Ranges : bytes
Server : Microsoft-IIS/8.0
Date : Sat, 24 Jun 2017 20:10:48 GMT
Cache-Control : public,max-age=31536000
我使用以下方式创建下载请求:
var request = URLRequest(url: URL(string: downloadUrl)!, cachePolicy: URLRequest.CachePolicy.returnCacheDataElseLoad, timeoutInterval: 120)
request.addValue("public", forHTTPHeaderField: "Cache-Control")
文件下载成功,但未缓存。当我下线并尝试下载时,我得到“互联网连接似乎处于离线状态。”错误。
我尝试从AppDelegate didFinishLaunch
更改下面的URLCachelet urlCache = URLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
URLCache.shared = urlCache
但没有运气。 提前谢谢。
答案 0 :(得分:0)
我认为这很简单:
let request = isNetwork ?
NSURLRequest(url: downloadUrl! as URL):
NSURLRequest(url: downloadUrl! as URL,cachePolicy:.returnCacheDataDontLoad, timeoutInterval:1);
如果检测到网络可用,则isNetwork为true。