2

我的应用程序中有一个 UIWebView,用于提供 Web 浏览功能。

我的工具栏上有一个按钮,它调用

-(void)stopLoading;

在 UIWebView 上。这样做的问题是,当这个方法被发送到 web 视图时,委托接收到

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

信息。此调用附带的错误是:无法完成操作。(NSURLErrorDomain 错误 -999。)

我还使用 didFailLoad 消息来判断页面是否确实无法加载——在这种情况下,我会向用户显示一条 html 格式的消息,以将此失败传达给他们。

所以问题是,如果用户点击停止按钮,则会显示错误页面,而不仅仅是显示在停止之前加载的页面的任何部分。

我曾希望 NSError.h 包含一个我可以比较的错误代码枚举 - 但似乎我必须根据我对日志中出现的错误代码的观察来制作我自己的 - 少于理想,因为他们将来可能会改变......

任何建议都会很棒,谢谢。

4

2 回答 2

2

我能找到解决这个问题的最好方法是使用 webView 给出的错误代码创建一个枚举。

看起来他们不会改变,但如果他们改变了,好吧 - 哼哼。

所以现在,在我的加载失败方法中,我只是将错误对象中的错误代码与我的枚举进行比较,我可以看到发生了什么——看起来有点像这样:

typedef enum {  
    BrowserErrorHostNotFound = -1003,
    BrowserErrorOperationNotCompleted = -999,
    BrowserErrorNoInternetConnection = -1009
} BrowserErrorCode;
于 2009-08-10T11:20:09.327 回答
2

这些错误代码在 Foundation.framework 中的 NSURLError.h 中定义

于 2009-12-22T20:44:51.887 回答