我使用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];
事实是,我不能总是复制我的问题。有什么建议?
P.S。我正在使用从4.3运行的应用程序。问题也出在iOS 7上。
答案 0 :(得分:1)
根据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);
}
答案 1 :(得分:0)
我认为您要查找的资源不可用。确保路径正确(ios区分大小写),如果从Internet下载某些内容,请确保下载已完成,文件已从临时文件夹复制到最终目的地。