所以,一旦你有了一个客户端,要么显式初始化它:
RKClient *client = [RKClient clientWithBaseURL:url];
Run Code Online (Sandbox Code Playgroud)
或者让对象管理器执行此操作:
RKObjectManager* om = [RKObjectManager managerWithBaseURLString:url];
RKClient *client = om.client;
Run Code Online (Sandbox Code Playgroud)
只需设置缓存策略应该是一个简单的事情:
client.cachePolicy = RKRequestCachePolicyNone;
Run Code Online (Sandbox Code Playgroud)
那是你在做什么的?
更新:由于记录消息是唯一让我担心的事情,我决定追查它的来源.tl; dr版本将忽略该消息并信任日志代理告诉您的内容.
要仔细检查我搜索"无效的路径缓存",发现它在两个位置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
Run Code Online (Sandbox Code Playgroud)
通过这个我学到的是有两个控制缓存的枚举:
RKRequestCachePolicy 这是您在客户端上设置的内容,它控制何时查询缓存.RKRequestCacheStoragePolicy 它决定了结果在设备上的存储时间(从不,会话持续时间,永久性).作为设置客户端的一部分,当设置URL时,客户端创建新缓存,RKRequestCacheStoragePolicyPermanently设置存储策略涉及清除先前的会话缓存,如果禁用缓存,则为永久缓存.这是您在日志消息中看到的清除.
| 归档时间: |
|
| 查看次数: |
2522 次 |
| 最近记录: |