gpt4 book ai didi

swift - 有没有办法在 watchOS 中使用 `useProtocolCachePolicy`?

转载 作者:行者123 更新时间:2023-11-28 07:24:54 27 4
gpt4 key购买 nike

我尝试在我的 watch 扩展中使用 URLRequest.CachePolicy.useProtocolCachePolicy,但每个请求都失败并出现“无法从网络加载”错误。

我看到了下面的答案:

NSURLErrorDomain Code=-2000 "can’t load from network"

但我想做的是使用缓存(如果有效)或请求策略。最合适的方法是使用 reloadRevalidatingCacheData 但尚未实现。

@constant NSURLRequestReloadRevalidatingCacheData Specifies that the existing cache data may be used provided the origin source confirms its validity, otherwise the URL is loaded from the origin source. Unimplemented.

在 iOS 中,useProtocolCachePolicyreloadRevalidatingCacheData 的工作方式非常相似。

https://developer.apple.com/documentation/foundation/nsurlrequest/cachepolicy/useprotocolcachepolicy

但是在使用 useProtocolCachePolicy 策略的 watchOS 中请求失败。顺便说一句,它与 reloadIgnoringLocalCacheData 一起工作。

我没有发出 HTTP 或 HTTPS 字节范围请求,所以看起来 useProtocolCachePolicy 可以像 iOS 一样工作,但事实并非如此。

唯一的方法似乎是手动实现缓存,但我想知道为什么它不起作用,并且有任何开箱即用的选项可以解决这个问题。

最佳答案

我从 Apple 那里得到了关于这个问题的答复。

Watch apps tend to be suspended very quickly so we recommend that developers use a background url session to ensure their api calls are still performed should an event such as backgrounding or suspension occur.

如果有人想使用 .useProtocolCachePolicy 策略,请使用后台配置。

let configuration = URLSessionConfiguration.background(withIdentifier: "xxx.xxx.xxxxx")
let session = URLSession(configuration: configuration)

关于swift - 有没有办法在 watchOS 中使用 `useProtocolCachePolicy`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56877708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com