排除 0.2.0

排除 0.2.0

Kyohei Ito维护。



排除 0.2.0

  • Kyohei Ito

排除

Build Status Carthage compatible Version License Platform

可自定义的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文件。