gpt4 book ai didi

ios - Restkit,禁用缓存

转载 作者:可可西里 更新时间:2023-11-01 04:31:40 31 4
gpt4 key购买 nike

我真的很难尝试在 Restkit 框架中禁用缓存。我尝试将缓存策略设置为无,但完全没有效果。执行此操作的正确方法是什么?

最佳答案

所以一旦你有了一个客户端,要么明确地初始化它:

RKClient *client = [RKClient clientWithBaseURL:url];

或者让对象管理器来做:

RKObjectManager* om = [RKObjectManager managerWithBaseURLString:url];
RKClient *client = om.client;

设置缓存策略应该是一件简单的事情:

client.cachePolicy = RKRequestCachePolicyNone;

那是你在做的吗?

更新:由于日志消息是唯一令人担心的事情,我决定追查它的来源。 tl;dr 版本是忽略消息并相信日志记录代理告诉您的内容。

为了仔细检查,我搜索了“Invalidating cache at path”并在两个位置找到了它 RKCache invalidateSubDirectory:RKCache invalidateAll 并在它们上设置了断点。这是我的一些代码的部分堆栈跟踪:

#0  0x000e6c66 in -[RKCache invalidateSubDirectory:] at RestKit/Code/Support/RKCache.m:189
#1 0x0006b767 in -[RKRequestCache invalidateWithStoragePolicy:] at RestKit/Code/Network/RKRequestCache.m:237
#2 0x0006b958 in -[RKRequestCache setStoragePolicy:] at RestKit/Code/Network/RKRequestCache.m:253
#3 0x00069abf in -[RKRequestCache initWithPath:storagePolicy:] at RestKit/Code/Network/RKRequestCache.m:60
#4 0x000586f3 in -[RKClient baseURLDidChange:] at RestKit/Code/Network/RKClient.m:339
#5 0x000589ce in -[RKClient observeValueForKeyPath:ofObject:change:context:] at RestKit/Code/Network/RKClient.m:373
#6 0x0183cd91 in NSKeyValueNotifyObserver ()
#7 0x0183c895 in NSKeyValueDidChange ()
#8 0x0182233e in -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] ()
#9 0x01844a82 in _NSSetObjectValueAndNotify ()
#10 0x00057404 in -[RKClient initWithBaseURL:] at RestKit/Code/Network/RKClient.m:176
#11 0x00056df3 in +[RKClient clientWithBaseURL:] at RestKit/Code/Network/RKClient.m:130

我从中了解到有两个枚举控制缓存:

  • RKRequestCachePolicy 这是您在客户端设置的,它控制何时查询缓存。
  • RKRequestCacheStoragePolicy 确定结果在设备上存储多长时间(从不、 session 持续时间、永久)。

作为设置客户端的一部分,当设置 URL 时,客户端会使用 RKRequestCacheStoragePolicyPermanently 创建一个新的缓存,设置存储策略涉及清除之前的 session 缓存,如果缓存被禁用,则永久缓存。这就是您在日志记录消息中看到的空白。

关于ios - Restkit,禁用缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9463259/

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