UIWebView - режим основного цикла kCFRunLoopDefaultMode - PullRequest
1 голос
/ 25 июля 2011

Я загружаю UIWebView, используя метод loadData.С некоторыми конкретными данными, которые являются довольно длинными, я получаю следующую ошибку:

void SendDelegateMessage(NSInvocation*): delegate (webView:didFinishLoadForFrame:) 
failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode

Это происходит после webViewDidFinishLoad.Любая идея, как я могу узнать, что я делаю неправильно?Я не использую никакой javascript.

1 Ответ

1 голос
/ 07 мая 2013

проблема в том, что веб-представление не хочет застрять, вызывая делегата, который может или не может вернуть

так что через 30 секунд выдает эту ошибку, говоря, что это ошибка DELEGATES, что все не продолжается

что вы можете сделать:

- (void)webview:(id)wv didFinishLoadForFrame:(id)f {
    [self performSelector:@selector(delayedDidFinish:) withObject:f afterDelay:0.0];
}

- (void)delayedDidFinish:(id)f {
    ...
}

Это позволит делегату вернуться, а затем запустить материал, когда в следующий раз появится runloop

====

с GCD, просто используйте dispatch_async - более современный, чем performSelector:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...