如何在iOS中设置缓存模型(对于NSURLCache和UIWebView)?

时间:2011-07-15 04:25:03

标签: iphone caching uiwebview nsurlcache

我想知道这是否是iOS框架中的错误。使用0调用NSURLCache setMemoryCapacity:方法并使其停止缓存。

我在呈现UIWebView时会看到这种情况。我正在使用SDURLCache并覆盖setMemoryCapacity:如果传入的memoryCapacity为零,则在那里放置一个断点,这样我就可以看到谁清除了它:

(gdb) bt
#0  -[SDURLCache setMemoryCapacity:] (self=0x18fc80, _cmd=0x347fee55, memoryCapacity=0) at /Users/me/Documents/Work/Clients/Joe/iphone-TESTapp/SDURLCache/SDURLCache.m:447
#1  0x33ddac3e in +[WebView(WebFileInternal) _setCacheModel:] ()
#2  0x33dda388 in +[WebView(WebFileInternal) _preferencesChangedNotification:] ()
#3  0x30ec27a4 in __invoking___ ()
#4  0x30e3a43c in -[NSInvocation invoke] ()
#5  0x36493c3c in SendMessage ()
#6  0x36493c14 in HandleAPISource ()
#7  0x30e96a78 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#8  0x30e986a2 in __CFRunLoopDoSources0 ()
#9  0x30e994ea in __CFRunLoopRun ()
#10 0x30e29ec2 in CFRunLoopRunSpecific ()
#11 0x30e29dca in CFRunLoopRunInMode ()
#12 0x36492284 in RunWebThread ()
#13 0x35ba5310 in _pthread_start ()
#14 0x35ba6bbc in thread_start ()

某些偏好更改已发布?我在WebPreferences.h中看到了cacheModel,它只是Mac OS X SDK: - (

所以,理想情况下我们可以通过某种方式设置缓存策略,但我不知道如何做到这一点。我不明白为什么它会选择缓存模型,以免发生缓存。

任何人都知道如何将iOS应用程序的缓存模型设置为更像WebCacheModelPrimaryWebBrowser的东西?

这与NSURLCache Memory Size is zero类似,但我希望通过提供更多详细信息,我可能会得到答案......

1 个答案:

答案 0 :(得分:0)

您可以尝试使用SDURLCache github link,或者您可以在代码中找到有用的内容。