【问题标题】:UIWebView - what NSError's are thrown?UIWebView - 抛出了什么 NSError?
【发布时间】:2014-06-28 22:16:15
【问题描述】:

当 UIWebView 因为无法访问服务器而无法加载页面时,我试图向用户发出警报。我正在使用委托方法:

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
  // show NSAlert telling user there was a problem
}

(文档:https://developer.apple.com/library/ios/documentation/uikit/reference/UIWebViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIWebViewDelegate/webView:didFailLoadWithError:)

问题是这个方法也会被调用来处理其他事情——比如当你在前一个页面完成加载之前访问另一个页面时,等等。我应该检查哪些特定的 NSError 来抛出我的 NSAlert? UIWebView 会抛出什么 NSError?我在任何地方都看不到这个记录!

谢谢。

【问题讨论】:

  • 尝试模拟失败的加载并找出抛出的错误代码。然后,一旦得到错误代码,只需检查 NSError 对象代码是否与您计算出的相同。
  • @Noam Solovechick 谢谢,这实际上是个好主意——我想太多像 Java 异常了。我试试看。
  • @NoamSolovechick 一旦我得到错误代码,有没有什么地方可以找到这个错误的真实描述?

标签: ios webview uiwebview nsurlrequest nserror


【解决方案1】:

如果有人遇到同样的问题,解决方案最终是: NSLog 每次调用错误函数时的错误代码和描述。 在我的应用程序中做一些会产生错误的事情 观察输出以确定哪些代码对应于哪些操作(错误描述有帮助)。

这可以通过以下方式实现:

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
    NSLog(@"%d", error.code);
    NSLog(error.localizedDescription);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2017-04-15
    • 2016-02-18
    • 1970-01-01
    相关资源
    最近更新 更多