Web视图中连接检查的简单警报视图

081*_*ger 2 iphone xcode objective-c storyboard ios

亲爱的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]; }
Run Code Online (Sandbox Code Playgroud)

我的问题是我将这个代码实现到我的Webviewcontroller的.m中并将委托连接到Filesowner但是App对我来说不会那么好给我看错误信息:-)

目前我正在使用支持ARC和故事板的Xcode 4.2.1.

有人请给我一步一步的指导如何让这项工作?它可能是我的应用程序所需的最后一个代码.

提前致谢

NJo*_*nes 5

委托方法是:

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
Run Code Online (Sandbox Code Playgroud)

注意它是" -(void)webView"而不是" -(void)webview".只需将"视图"中的"v"大写,它就会起作用.

回答你的后续问题:"现在,当我停止加载页面时,错误信息也会出现.还有其他提示吗?"

如您所见,NSError传递给您的函数.该错误包含有关失败的信息.您可以通过添加以下内容来查看该信息:( NSLog(@"Epic fail with error:%@",error);为了戏剧效果而添加了"Epic").记录该错误时,您会看到code列出的"属性".通过一些实验,您将看到此代码属性根据错误类型而更改.似乎此代码将等于-1009连接错误.所有可能的错误都在"URL加载系统错误代码"下列举.最重要的是,因为它们是在枚举中定义的,所以您不必记住其中的大部分内容.你可以使用:

-(void)webView:(UIWebView *)webview didFailLoadWithError:(NSError *)error {
    if (error.code == NSURLErrorNotConnectedToInternet){
        NSLog(@"You are not connected");
    }
}
Run Code Online (Sandbox Code Playgroud)