有时我的应用程序运行正常,但有时会因以下错误而失败:
* 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)。