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

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

Есть идеи?

3 ответа

Решение

Я смог найти ответ здесь.

Эта тема содержала это описание для этой ошибки: 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.
}

NSURLErrorCancelled (-999)

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

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

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

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

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

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

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"ERROR : %@",error); //Get informed of the error FIRST
    if([error code] == NSURLErrorCancelled) 
        return;
}
Другие вопросы по тегам