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