NSURLCache不能与UIWebVIew脱机工作

Kun*_*ani 5 iphone objective-c uiwebview nsurlcache ios

我正在尝试使用NSURLCache中的数据离线加载UIWebView。

-(BOOL)应用程序:(UIApplication *)应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //设置缓存
    int cacheSizeMemory = 4 * 1024 * 1024; // 4MB
    int cacheSizeDisk = 32 * 1024 * 1024; // 32MB

    NSURLCache * urlCache = [[NSURLCache alloc] initWithMemoryCapacity:cacheSizeMemory diskCapacity:cacheSizeDisk diskPath:@“ nsurlcache”]];
    [NSURLCache setSharedURLCache:urlCache];
}

-(无效)loadWebView {
    request = [NSURLRequest requestWithURL:myURL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:1000];
    [self.webView loadRequest:request];
}

当我尝试离线加载UIWebView时,它将调用didFailWithError而不是connectionDidFinishLoading。但是,我的Cache目录包含脱机数据和资源,例如CSS,JS文件,但UIWebView无法访问它。

我已经通过重写以下方法来确认这一点:

-(NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request {
    NSCachedURLResponse *响应= [超级cachedResponseForRequest:请求];

    if([response.data length]> 0){
       //所有css,js脚本文件都会调用
       NSLog(@“从缓存中返回数据”);
    }
    返回响应;
}

此外,从缓存UIWebview返回的数据无法加载。