我正在制作的iOS应用可以有多个webView同时加载相同的网址。导致此错误:
Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed.
(NSURLErrorDomain error -999.)" UserInfo=0x176b7bc0 {NSErrorFailingURLKey=https://example.com,
NSErrorFailingURLStringKey=https://example.com}
我读到在旧请求完成之前启动新请求时会发生这种情况。我该如何防止这种情况发生?感谢
答案 0 :(得分:1)
使用委托方法。如果您希望按顺序运行它们,请确定触发该方法的视图然后触发下一个视图。
- (void) webViewDidFinishLoad:(UIWebView *)webview{
if ( webview == self.wView1 )
{
// stuff
} else if ( webview == self.wView2 ) {
// stuff 2
}
}
答案 1 :(得分:1)
我花了几周时间担心这个错误。我在访问网页时随机获取它。在我的情况下,由于Web访问是由代码中的状态机而不是用户驱动的,因此我将其放在请求过快的页面中。
经过多次搜索,最后我发现了一些无法解释错误发生原因的讨论,但有人认为这是UIWebView的功能,而不是你应该担心的事情。指导是忽略它。如果能找到的话,我会看看我是否能找到这篇文章并稍后更新这个答案。
我按如下方式更新了我的代码,到目前为止,添加代码后一直没有看到任何不良影响。这表明它几乎是一个通知,任何导致它的东西似乎都会在UIWebView中得到纠正。希望在你的情况下这是一样的。
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
VSSLog(@"Entry: error = %@",error);
// Added this based on net advice. Its a bogus error.
if ([error code] == NSURLErrorCancelled) {
return;
}
... Normal error handling code for proper errors.
}
我不是一个不在乎的人,但我相信这是其中一个可以接受的情况。
最后,如果您只使用iOS8,您可以尝试使用新的WKWebView而不是UIWebView。