Как исправить ошибку NSURLErrorDomain -999 в ОС iPhone 3.0

Я пытаюсь обновить приложение для iPhone для работы с ОС 3.0. У меня есть UIWebView, который показывает страницу в порядке. Но когда я нажимаю ссылку, она вызывает моего делегата для didFailLoadWithError, и ошибка - операция не может быть завершена. (Ошибка NSURLErrorDomain -999.) Я проверил, что это все еще работает с ОС 2.2.1, поэтому в 3.0 оно изменилось.

Любые идеи?

Ответ 1

Мне удалось найти ответ здесь.

Этот поток содержит это описание для этой ошибки: This error may occur if an another request is made before the previous request of WebView is completed...

Я работал вокруг этого, игнорируя эту ошибку и позволяя веб-просмотру продолжать загружаться.

if ([error code] != NSURLErrorCancelled) {
//show error alert, etc.
}

Ответ 2

NSURLErrorCancelled (-999)

"Возвращается, когда асинхронная загрузка отменяется. Делитель рамки Web Kit получит эту ошибку при выполнении операции отмены на загрузочном ресурсе. Обратите внимание, что делегат NSURLConnection или NSURLDownload не получит эту ошибку, если загрузка будет отменена."

Для моей ситуации (и, вероятно, вашей) это можно игнорировать:

if([error code] == NSURLErrorCancelled) return; // Ignore this error

Ответ 3

Вышеуказанные ДВА ответы были ПРАВИЛЬНЫ > Просто выполните возврат, если запрос на загрузку вызывает отмену.

Также хочу отметить, что люди НЕ забывают помещать NSLog в ваш метод didFailLoadWithError, это может помешать вам потерять много времени, обнаружив проблему прямо на!

Итак, вот окончательное решение со всем, что я упомянул выше:

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"ERROR : %@",error); //Get informed of the error FIRST
    if([error code] == NSURLErrorCancelled) 
        return;
}