使用NSURLConnection限制光盘和内存高速缓存大小

时间:2014-12-09 14:57:23

标签: ios objective-c caching uiwebview

我有一个使用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?有没有明确的方法来测试这个?谢谢!

1 个答案:

答案 0 :(得分:1)

UIWebView使用共享URL缓存,是的,[NSURLCache setSharedURLCache:sharedCache];设置将由UIWebView使用的缓存。

最容易看到的是子类化NSURLCache并在

中执行某些操作
-(NSCachedURLResponse*)cachedResponseForRequest:(NSURLRequest*)request;

方法。然后将您的子类设置为共享缓存,并亲自查看。