Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios `迪德罗:“问题_Ios_Objective C_Uiwebview_Internet Connection - Fatal编程技术网

Ios `迪德罗:“问题

Ios `迪德罗:“问题,ios,objective-c,uiwebview,internet-connection,Ios,Objective C,Uiwebview,Internet Connection,我注意到我的网络视图中有一个奇怪的错误。我有一个应用程序,可以检查设备是否连接到互联网,如果连接,则错误图像仍然隐藏。如果未连接,我将取消隐藏错误图像。问题是,如果我尝试在页面加载完成之前单击另一个链接,didFailLoadWithError:触发并取消隐藏连接问题图像。以下是我正在使用的代码: - (void)webViewDidFinishLoad:(UIWebView *)webView { NSLog(@"didFinish: %@; stillLoading:%@", [[w

我注意到我的网络视图中有一个奇怪的错误。我有一个应用程序,可以检查设备是否连接到互联网,如果连接,则错误图像仍然隐藏。如果未连接,我将取消隐藏错误图像。问题是,如果我尝试在页面加载完成之前单击另一个链接,
didFailLoadWithError:
触发并取消隐藏连接问题图像。以下是我正在使用的代码:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
          (webView.loading?@"NO":@"YES"));
}

-(void)webView:(UIWebView *)myWebView didFailLoadWithError:(NSError *)error {

    NSLog(@"No internet connection");
    _connectionError.hidden = NO;
}
如果我等到在日志中看到“仍在加载”,然后按另一个链接,一切正常。如果在看到该消息之前按下链接,则
didFailLoadWithError:
触发并取消隐藏连接问题。我对Objective-C和编程非常陌生,所以我不知道如何解决这个问题


有什么简单的方法可以让我在应用程序启动时只运行一次吗?

每次web视图加载失败时,都会调用didFailLoadWithError,这是在当前页面加载完成之前尝试加载另一个页面时发生的

您应该尝试其他方法来检测是否没有internet连接,例如使用可达性:


另一种方法是在webView:shouldStartLoadWithRequest:navigationType:delegate中调用stopLoading方法,用于在用户点击另一个链接而上一个链接仍在web视图中加载时触发didFailLoadWithError的特定情况。

我使用的解决方案是检查错误代码。如果代码等于连接错误,那么我将取消隐藏错误图像。

我尝试了可达性,但它完全是一团糟,让我不知所措。我将尝试立即在
webView:shouldStartLoadWithRequest:navigationType:
中调用
stopLoading
。这也不起作用,基本上,我只是在寻找一种方法,在应用程序中只运行一次
didFailLoadWithError:
。@OralB你能在调用loadHTMLString方法之前调用stopLoading吗?我实际上认为我没有
loadHTMLString
方法,我正在加载viewDidLoad中的第一个网站。很抱歉,如果这不是你要问的,我对此还是很陌生。是否可以让'didFailLoadWithError'返回一个值,并在'viewDidLoad'中检查该值,以便它不会在每次加载新网页时触发?基本上,我只是想在应用程序中只运行一次
didFailLoadWithError: