有时我的应用程序工作正常,但有时它会因此错误而失败:
* 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。
答案 0 :(得分:2)
我认为崩溃发生在[self parseTable:html];所以检查断点到这一行并确认。如果是,那么在这个方法中调试
答案 1 :(得分:2)
请您发布parseTable:
方法的代码。另外,在调用parseTable:
方法之前,请确保对您的html字符串进行零检查。在parseTable:
方法中,请确保在调用objectAtIndex:
方法之前对NSArray计数进行安全检查。看起来你试图从NSArray访问第7项(索引6),其中只包含6个项目(最大索引5)。