IPhone SendDelegateMessage не удалось вернуть после ожидания 10 секунд - PullRequest
5 голосов
/ 24 октября 2009

Я продолжаю получать следующее сообщение от моего iPhone 3.0 при попытке преобразовать большой объект NSData в base64Encoding для передачи http:

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

Если вы не использовали сенсорный экран в течение всего этого интервала (который может продлить это ожидание), пожалуйста, сообщите об ошибке.

Я использую синхронный запрос, и сенсорный экран будет зависать только при отображении состояния UIProgressView при загрузке данных. У кого-нибудь есть хорошая идея, как решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 09 февраля 2014

Как говорится: ты слишком долго; D
веб-просмотр на английском языке: «Я вызвал делегата, и это занимает слишком много времени, и я не могу продолжить отображение HTML или запуск JS»

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

так делает синхронный запрос? в основной теме? никогда не делай этого

Лучше:

- webView:... {
      dispatch_async(dispatch_get_global_queue(0,0), ^{
          //DO LONG RUNNING IN BG

          dispatch_sync(dispatch_get_main_queue(), ^{
              //update UI
          }
      }
}
0 голосов
/ 13 августа 2010

Если вы используете UIWebView, то нам нужно сначала сделать это, прежде чем перейти к следующему представлению

webView.delegate = nil;
...