如果可能,如何更改默认的Alamofire缓存时间?

时间:2019-06-10 11:42:17

标签: swift alamofire

我目前正在使用Alamofire来调用API,并且我希望响应被缓存以便重用(Alamofire默认提供),但最多只能使用一个小时,然后它应该在上述时间段之后再次调用该API。

AF.request("someUrl...")
  .validate().responseJSON { response in
       switch response.result {
             case .success:
                // some logic
             case .failure(let error):
                print(error)
       }
}

一切似乎都不错,但是我找不到使用Alamofire来了解或更改缓存时间的方法。

有人可以建议我如何更改缓存时间并将其集成到上面的代码中吗?

在此先感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

您需要自己处理它,这意味着您需要跟踪上次缓存的图像的时间;如果先前的请求早于您的时间限制,则在再次触发该请求之前,请删除缓存的响应,例如:

let urlRequest = URLRequest(url: URL(string: "someUrl...")!)

URLCache.shared.removeCachedResponse(for: urlRequest) // remove older cache

// now request again, with your method.

AF.request("someUrl...")
.validate().responseJSON { response in
   switch response.result {
         case .success:
            // some logic
         case .failure(let error):
            print(error)
   }
}