我正在使用方法loadData
加载UIWebView。由于某些特定数据很长,我收到以下错误:
void SendDelegateMessage(NSInvocation*): delegate (webView:didFinishLoadForFrame:)
failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode
它发生在webViewDidFinishLoad
之后。任何想法我怎么能找出我做错了什么?我没有使用任何JavaScript。
答案 0 :(得分:1)
问题是网页视图不希望“卡住”调用可能会或可能不会返回的代理
因此它会在30秒后抛出错误,说这是DELEGATES错误,事情不会继续
你能做的是:
- (void)webview:(id)wv didFinishLoadForFrame:(id)f {
[self performSelector:@selector(delayedDidFinish:) withObject:f afterDelay:0.0];
}
- (void)delayedDidFinish:(id)f {
...
}
这将让代理返回,然后在下次运行环回时运行东西
====
使用GCD,只需使用dispatch_async
- 比performSelector: