繁体   English   中英

使用UIWebView加载静态资源时出现随机错误

[英]Random error on loading a static resource with a UIWebView

我正在使用UIWebView加载应用程序捆绑包中随附的静态资源。 有时,我不清楚问题可能是什么,我在委托方法中收到以下错误- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

NSUnderlyingError = "Error Domain=kCFErrorDomainCFNetwork Code=-1001

资源是通过NSURLRequest加载的,我在其中设置了10秒的超时间隔,但是没有遵循该间隔。 实际上,在调试控制台中,我可以看到大约2秒后调用了错误委托。

NSURL *htmlFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"root" ofType:@"html"] isDirectory:NO];
NSURLRequest* htmlRequest = [NSURLRequest requestWithURL:htmlFile cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10.0];

[webView loadRequest:htmlRequest];

事实是,我不能总是重复出现的问题。 有什么建议么?

PS我正在使用从4.3开始运行的应用程序。 问题也出在iOS 7上。

根据Apple CFNetwork Error Codes Reference此代码是超时错误:

kCFURLErrorTimedOut  = -1001

超时并非总是很容易重现,最有可能在您初始化NSURLRequest时应延长超时值。

根据同一文档,您可以查询对象以获取其他信息。

例如:

if (CFEqual(CFErrorGetDomain(err), kCFErrorDomainCFNetwork) && CFErrorGetCode(err) == kCFHostErrorUnknown) {

    CFDictionaryRef userInfo = CFErrorCopyUserInfo(err);

    CFNumberRef number = (CFNumberRef) CFDictionaryGetValue(userInfo, kCFGetAddrInfoFailureKey);

    ...

    CFRelease(userInfo);
}

我想您正在寻找的资源不可用。 确保路径正确(ios区分大小写),并且如果要从Internet下载某些内容,请确保下载已完成,并且文件已从临时文件夹复制到最终目的地。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM