排除
可自定义的URLCache。它可以控制存储缓存并响应缓存。因此,与NSURLRequest.CachePolicy
的.returnCacheDataElseLoad
一起使用,非常适合缓存图像资源等。
要求
- Swift 4.2
- iOS 8.0或更高版本
- tvOS 9.0或更高版本
如何安装排除
CocoaPods
在您的Podfile
中添加以下内容
pod "Exclusion"
Carthage
在您的Cartfile
中添加以下内容
github "KyoheiG3/Exclusion"
使用
示例
将其设置为 URLSessionConfiguration
。如需,还可以将 .returnCacheDataElseLoad
设置为配置的 requestCachePolicy
。
let conf = URLSessionConfiguration.default
conf.urlCache = Cache(memoryCapacity: 100 * 1024 * 1024, diskCapacity: 300 * 1024 * 1024, diskPath: "YOUR DIRECTORY PATH")
conf.requestCachePolicy = .returnCacheDataElseLoad
如果还需要控制存储缓存并响应缓存,请创建一个对象来设置排除。例如,您想要使用响应头值更精确地控制。
struct Excluder: CacheExcludable {
func canRespondCache(with httpResponse: HTTPURLResponse) -> Bool {
return httpResponse.header.cacheControl?.noCache != false
}
func canStoreCache(with httpResponse: HTTPURLResponse) -> Bool {
return httpResponse.header.cacheControl?.noStore != false
}
}
let cache = Cache(memoryCapacity: 100 * 1024 * 1024, diskCapacity: 300 * 1024 * 1024, diskPath: "YOUR DIRECTORY PATH", excludable: Excluder())
变量
var minimumAge: Int
- 如果需要强制返回缓存,则将其设置为大于 0,然后缓存将直至其过期为止返回。
- 如果设置为小于 0,则被忽略。
- 它还会在检查响应头有效期之前进行检查。
函数
init(memoryCapacity: Int, diskCapacity: Int, diskPath path: String?, excludable: CacheExcludable? = default)
- 可以设置可排除的对象。
作者
Kyohei Ito
关注我
许可证
基于MIT许可证。详细信息请见LICENSE文件。