有时我的应用程序运行正常,但有时会因以下错误而失败:

* WebKit丢弃了webView:didFinishLoadForFrame中的未捕获异常:委托:* -[__ NSArrayM objectAtIndex:]:索引6超出范围[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。

最佳答案

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

10-08 11:18