iOS 8 UIWebview委托:WebKit丢弃了webView中未捕获的异常:didFinishLoadForFrame:

时间:2015-09-13 10:18:52

标签: ios objective-c webview uiwebview webkit

有时我的应用程序工作正常,但有时它会因此错误而失败:

  

* WebKit在webView中丢弃了一个未捕获的异常:didFinishLoadForFrame:delegate:* - [__ NSArrayM objectAtIndex:]:index 6超出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。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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