我有一个使用UIWebViews
的应用。我正在使用RNCachingURLProtocol
来缓存页面以进行离线浏览。 RNCachingProtocol
在请求中使用NSURLConnection
。在我的 AppDelegate 中,我有以下代码:
NSUInteger cacheSizeInMemory = 100 * 1024 * 1024;
NSUInteger cacheSizeOnDisc = 100 * 1024 * 1024;
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:cacheSizeInMemory diskCapacity:cacheSizeOnDisc diskPath:@"nsurlcache"];
[NSURLCache setSharedURLCache:sharedCache];
我测试了RNCachingProtocol
并确认它确实将网页内容缓存到光盘。由于RNCachingURLProtocol
使用NSURLConnection
,我是否假设我的UIWebView
个对象将使用我的AppDelegate中定义的NSURLCache
?有没有明确的方法来测试这个?谢谢!
答案 0 :(得分:1)
UIWebView使用共享URL缓存,是的,[NSURLCache setSharedURLCache:sharedCache];
设置将由UIWebView使用的缓存。
最容易看到的是子类化NSURLCache并在
中执行某些操作-(NSCachedURLResponse*)cachedResponseForRequest:(NSURLRequest*)request;
方法。然后将您的子类设置为共享缓存,并亲自查看。