gpt4 book ai didi

ios - kPFCachePolicyCacheThenNetwork 缓存未命中

转载 作者:行者123 更新时间:2023-11-28 19:54:51 25 4
gpt4 key购买 nike

如果我以前从未运行过该应用程序,当我在我的 query.cachePolicy 属性上设置 kPFCachePolicyCacheThenNetwork 并运行它时,它会显示带有文本“缓存未命中”的 UIAlertView。

我尝试构建一个先使用缓存再使用网络的应用。

在不显示 UIAlertView 的情况下获得此效果的最佳方法是什么?

最佳答案

如果您想检查缓存未命中,您应该检查错误代码 120。如果您看到该代码,只需返回(无需显示您的 UIAlertView)。

如果您只想在第一次看到错误后显示错误消息,请在 NSUserDefaults 中保存一个标志,指示遇到第一次缓存未命中,并检查错误代码 120 并且未设置 NSUserDefaults 标志。我不确定您为什么要向用户显示缓存未命中,特别是如果您的策略是在命中缓存后访问网络,因为这与他们无关,因为最后一个(网络) 失败是最重要的。

--- 编辑---

禁用在使用 PFQueryTableViewController 时显示的自动 UIAlertView(或者如果您已启用它)和 error is encountereduser is offline ,您可以使用以下代码:

[Parse errorMessagesEnabled:NO];
[Parse offlineMessagesEnabled:NO];

取决于您要显示的消息类型。我发现通常最好禁用所有这些,并在应用程序逻辑中处理错误,而不是在出现任何错误时显示警报,因为缓存未命中或未返回数据等情况可能会导致出现错误。

如果您仍想对错误使用解析警报 View ,但不想显示缓存未命中错误,那么您可以根据缓存内容设置缓存策略。您可以测试查询以查看它是否具有缓存结果,例如...

if ([myQuery hasCachedResults]) {
myQuery.cachePolicy = kPFCachePolicyCacheThenNetwork;
} else {
myQuery.cachePolicy = kPFCachePolicyNetworkOnly;
}

然后运行您的查询。

关于ios - kPFCachePolicyCacheThenNetwork 缓存未命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27095017/

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