让 `didFailLoadWithError:` 在启动时只运行一次
Posted
技术标签:
【中文标题】让 `didFailLoadWithError:` 在启动时只运行一次【英文标题】:Having `didFailLoadWithError:` only run once on startup 【发布时间】:2013-05-29 15:20:45 【问题描述】:如果我在页面完成加载之前尝试单击另一个链接,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;
有没有人知道一种快速的方法,让它只在应用启动时运行一次,并且在其余时间不再运行?
【问题讨论】:
【参考方案1】:这是每次失败时都会触发的委托方法..
试试这样的。 (在 header 中创建一个名为 firstTimeRun 的 BOOL)
-(void)webView:(UIWebView *)myWebView didFailLoadWithError:(NSError *)error
if (firstTimeRun)
_connectionError.hidden = NO;
firstTimeRun = NO;
如果您只想在第一次加载时使用,请记住在加载网站时将 firstTimeRun 设置为 NO。
编辑:
在您的头文件 (.h) 中编写以下内容
@interface ...
@property BOOL firstTimeRun;
您可能需要在方法中的某处使用 NO 对其进行初始化。您需要先发布课程的 .h 和 .m 文件,然后我才能为您提供更多帮助。
【讨论】:
非常感谢,帮了大忙。不过,我对 Objective-c 还是很陌生,你知道我的 firstTimeRun 应该是什么样子吗?以上是关于让 `didFailLoadWithError:` 在启动时只运行一次的主要内容,如果未能解决你的问题,请参考以下文章
iOS 9.2.1 获取 webView:didFailLoadWithError - 102:Phonegap 中的帧加载中断
iPhone - UIWebView 在没有数据连接的情况下不调用 didFailLoadWithError