亲爱的Stackover社区,
近一周,我正在努力解决这个问题,即必须进行连接检查 对于我的网络视图,所以我在Apple的App审核过程中幸存下来: - )
我知道我可以使用Reachablity样本,但作为初学者,我会说它处理这样的代码并不聪明。
我发现使用简单的警报和类似的代码会更简单:
-(void)webview:(UIWebView *)webview didFailLoadWithError:(NSError *)error {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Can't connect. Please check your internet Connection"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show]; }
我的问题是我将此代码实现到我的Webviewcontroller的.m中,并将委托连接到Filesowner但是App对我来说不是很好,以便向我显示错误消息: - )
目前我正在使用支持ARC和故事板的Xcode 4.2.1。
有人请给我一步一步指导如何完成这项工作? 它可能是我的应用程序所需的最后一个代码。
提前致谢
答案 0 :(得分:5)
委托方法是:
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
请注意,“-(void)webView
”不是“-(void)webview
”。只需将“视图”中的“v”大写,它就会起作用。
回答你的后续问题:“现在,当我停止加载页面时,错误信息也会出现。是否有其他提示?”
如您所见,NSError
传递给您的函数。该错误包含有关失败的信息。您可以通过添加以下内容来查看该信息:NSLog(@"Epic fail with error:%@",error);
(为剧烈效果添加了“Epic”)。记录该错误后,您会看到列出的code
'属性'。通过一些实验,您将看到此代码属性根据错误类型而更改。对于连接错误,此代码似乎等于-1009
。所有可能的errors are enumerated here under "URL Loading System Error Codes"。最重要的是,因为它们是在枚举中定义的,所以您不必记住其中的大部分内容。你可以使用:
-(void)webView:(UIWebView *)webview didFailLoadWithError:(NSError *)error {
if (error.code == NSURLErrorNotConnectedToInternet){
NSLog(@"You are not connected");
}
}
答案 1 :(得分:0)
尝试...... UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@“Error” 消息:[error localizedString ] 委托:自我 cancelButtonTitle:@ “OK” otherButtonTitles:无];