NSURLSession 和图像缓存
NSURLSession and image cache
在我的 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()
问题是:如何限制图像缓存大小?我可以看到我的应用程序在我的设备上使用了越来越多的磁盘 space。有没有办法保留图像缓存但限制我的应用程序可以使用的大小?默认有过期时间吗?
NSURLSession 使用共享 NSURLCache to cache responses. If you want to limit disk/memory usage of a shared cache you should create 新缓存并将其设置为默认缓存:
let URLCache = NSURLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
NSURLCache.setSharedURLCache(URLCache)
您可以找到更多关于缓存的信息 here。
在我的 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()
问题是:如何限制图像缓存大小?我可以看到我的应用程序在我的设备上使用了越来越多的磁盘 space。有没有办法保留图像缓存但限制我的应用程序可以使用的大小?默认有过期时间吗?
NSURLSession 使用共享 NSURLCache to cache responses. If you want to limit disk/memory usage of a shared cache you should create 新缓存并将其设置为默认缓存:
let URLCache = NSURLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
NSURLCache.setSharedURLCache(URLCache)
您可以找到更多关于缓存的信息 here。