10

在我response通过 Alamofire 获得后,在某些情况下,自己实现数据库或管理本地存储(文件等)可能有点矫枉过正

我知道 Alamofire'srequestCachePolicy并且它已经在缓存响应(基于cache-control's max-age,但这更多地与减少请求数量/改善在线体验有关。

但是当我没有通过 Alamofire 可用的连接时,是否可以使用缓存的响应? (Alamofire 是否提供某种方便的方法来处理这个问题)

4

1 回答 1

1

为了实现这种行为。您应该尝试修改即将执行的“正在进行”请求并设置标志returnCacheDataDontLoadreturnCacheDataElseLoad获得所需的行为。(取决于你的需要)

就像是:

var req = URLRequest(url: URL(string: "http://foo.bar.com/res")!)
if noInternet {
    req.cachePolicy = .returnCacheDataDontLoad
}

还要确保应用程序正在与服务器协商缓存策略,以防万一您还需要对其进行调整。

希望能帮助到你!:)

于 2017-03-03T19:08:00.850 回答