
我试图将缓存策略设置为none,完全没有效果.这样做的正确方法是什么?解决方法 所以,一旦你有了一个客户端,要么显式初始化它:
RKClIEnt *clIEnt = [RKClIEnt clIEntWithBaseURL:url];
或者让对象管理器执行此 *** 作:
RKObjectManager* om = [RKObjectManager managerWithBaseURLString:url];RKClIEnt *clIEnt = om.clIEnt;
只需设置缓存策略应该是一个简单的事情:
clIEnt.cachePolicy = RKRequestCachePolicyNone;
那是你在做什么的?
更新:由于记录消息是唯一让我担心的事情,我决定追查它的来源. 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
通过这个我学到的是有两个控制缓存的枚举:
> RKRequestCachePolicy是您在客户端上设置的,它控制何时查询缓存.
> RKRequestCacheStoragePolicy,用于确定结果存储在设备上的时间长度(从不,会话持续时间,永久性).
作为设置客户端的一部分,当设置URL时,客户端使用RKRequestCacheStoragePolicy创建新缓存永久性地设置存储策略涉及清除先前的会话缓存,并且 – 如果禁用缓存 – 永久缓存.这是您在日志消息中看到的清除.
总结以上是内存溢出为你收集整理的ios – Restkit,禁用缓存全部内容,希望文章能够帮你解决ios – Restkit,禁用缓存所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)