【问题标题】:iOS 8 UIWebview Delegate: WebKit discarded an uncaught exception in the webView:didFinishLoadForFrame:iOS 8 UIWebview 委托:WebKit 在 webView:didFinishLoadForFrame 中丢弃了一个未捕获的异常:
【发布时间】:2015-12-09 11:59:04
【问题描述】:

有时我的应用程序运行良好,但有时会失败并出现以下错误:

* WebKit 在 webView 中丢弃了一个未捕获的异常:didFinishLoadForFrame: delegate: * -[__NSArrayM objectAtIndex:]: index 6 beyond bounds [0 .. 5]

我发现了一些关于 WebKit 中异常的其他问题,但没有一个与 NSRangeException 相关的问题。

我的代码:

- (id) init {
   myWebView = [[UIWebView alloc] init];
   myWebView.delegate = self;
   [myWebView stopLoading];
   return self;
}

- (void)loadUrl:(NSString *)urlAddress  {

    NSURL *url = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
   [myWebView stopLoading];
   [myWebView loadRequest:requestObj];

}

 - (void)webViewDidFinishLoad:(UIWebView *)webView{

    if (!myWebView.isLoading) {
        [myWebView stopLoading];
        if (selectedInfo == LOADTable) {

            NSString *html = [NSString stringWithFormat:@"%@",[myWebView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"]];
            [myWebView stopLoading];
            [self parseTable:html];

        } 

    }
 }

有没有人知道如何解决这个错误。

UIWebView 未显示在任何UIView 上。仅用于加载 HTML。

【问题讨论】:

  • 请使用异常断点为您的崩溃找到确切的链接,另一个帮助是:请为您的 UIWebView 使用强引用,最后请不要在 init 方法中调用停止加载
  • @MohamadFarhand:感谢Exception breakpoint 的提示。解决它以找到确切的错误。

标签: ios objective-c webview uiwebview webkit


【解决方案1】:

能否请您发布parseTable: 方法的代码。另外,在调用parseTable: 方法之前,请确保对您的html 字符串进行nil 检查。在parseTable: 方法中,请确保在调用objectAtIndex: 方法之前对 NSArray 计数进行安全检查。看起来您正在尝试从仅包含 6 个项目(最大索引 5)的 NSArray 访问第 7 个项目(索引 6)。

【讨论】:

  • parseTable: 是我的错。由于最好的解释,我会接受你的回答。
【解决方案2】:

我认为崩溃发生在 [self parseTable:html];所以检查这一行的断点并确认。如果是真的,那么在这个方法里面调试

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多