Swift 有没有办法在watchOS中使用“useProtocolCachePolicy”?
我试图在我的手表扩展中使用Swift 有没有办法在watchOS中使用“useProtocolCachePolicy”?,swift,cache-control,watchos,Swift,Cache Control,Watchos,我试图在我的手表扩展中使用URLRequest.CachePolicy.useProtocolCachePolicy,但每个请求都失败,出现“无法从网络加载”错误 我看到了以下答案: 但我想做的是使用cached if valid或request策略。最合适的方法是使用reloadRevalidatingCacheData,但尚未实现 @常量NSURLRequestReloadRevalidatingCacheData指定 现有的缓存数据可以使用,前提是原始数据源 确认其有效性,否则将从 来源
URLRequest.CachePolicy.useProtocolCachePolicy
,但每个请求都失败,出现“无法从网络加载”错误
我看到了以下答案:
但我想做的是使用cached if valid或request策略。最合适的方法是使用reloadRevalidatingCacheData
,但尚未实现
@常量NSURLRequestReloadRevalidatingCacheData指定
现有的缓存数据可以使用,前提是原始数据源
确认其有效性,否则将从
来源。未执行
在iOS中,useProtocolCachePolicy
与reloadRevalidatingCacheData
的工作原理非常相似
但是,使用useProtocolCachePolicy
policy的watchOS中的请求失败。顺便说一句,它使用了reloadIgnoringLocalCacheData
我没有发出HTTP或HTTPS字节范围请求,所以它看起来像是useProtocolCachePolicy
和iOS一样工作,但它没有
唯一的方法似乎是手动实现缓存,但我想知道为什么它不起作用,而且这个问题有现成的选项。我从苹果那里得到了关于这个问题的答案 Watch应用程序往往会很快挂起,因此我们建议开发人员使用后台url会话,以确保在发生诸如回退或挂起之类的事件时仍能执行api调用 如果有人想使用.useProtocolCachePolicy,请使用后台配置
let configuration = URLSessionConfiguration.background(withIdentifier: "xxx.xxx.xxxxx")
let session = URLSession(configuration: configuration)
我从苹果公司得到了关于这个问题的答案 Watch应用程序往往会很快挂起,因此我们建议开发人员使用后台url会话,以确保在发生诸如回退或挂起之类的事件时仍能执行api调用 如果有人想使用.useProtocolCachePolicy,请使用后台配置
let configuration = URLSessionConfiguration.background(withIdentifier: "xxx.xxx.xxxxx")
let session = URLSession(configuration: configuration)