在我的iOS 9+ Swift 2.2应用程序中,我使用NSURLSession的dataWithRequest方法下载多个图像:
let session: NSURLSession = NSURLSession(configuration: self.configuration)
let request = NSURLRequest(URL: self.url)
let dataTask = session.dataTaskWithRequest(request) { (data, response, error) in
// Handle image
}
dataTask.resume()
session.finishTasksAndInvalidate()
问题是:如何限制图像缓存大小?我可以看到我的应用程序在我的设备上使用了越来越多的磁盘空间。有没有办法保持图像缓存,但限制我的应用程序可以使用的大小?默认情况下是否到期?
答案 0 :(得分:2)
NSURLSession使用共享NSURLCache来缓存响应。如果要限制共享缓存的磁盘/内存使用量,则应create新缓存并将其设置为默认缓存:
let URLCache = NSURLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
NSURLCache.setSharedURLCache(URLCache)
您可以找到有关缓存here的更多信息。