2009-06-21 3 views
50

OS 3.0으로 작동하도록 iPhone 응용 프로그램을 업데이트하려고합니다. 페이지를 잘 보여주는 UIWebView가 있습니다. 하지만 링크를 클릭하면 didFailLoadWithError에 대한 위임자가 호출되며 작업을 완료 할 수 없습니다. (NSURLErrorDomain 오류 -999.)이 여전히 OS 2.2.1 함께 작동하는지 확인 했으므로 3.0에서 변경된 것입니다.iPhone 3.0 OS에서 NSURLErrorDomain 오류 -999를 수정하는 방법

아이디어가 있으십니까?

+0

자세한 된 페이지처럼있는 UIWebView에 있습니다

그래서 여기에 내가 위에서 언급 한 모든과 최종 솔루션입니다. – dlamblin

+0

나는 지금 길을 가고 돌아올 때 더 많은 세부 사항을 추가 할 것이다. 공개 웹 페이지입니다. 다음 파고에서 다음 요청을 받기 전에 완전히로드되지 않은 페이지와 관련이있는 것으로 보입니다. 나는 아직 그것을 시험 할 기회가 없었다. 그게 내가 증명할 문제가된다면. –

+0

올바른 답으로 간주되는 것을 다시 방문해야한다고 생각합니다. – hfossli

답변

115

답변은 here입니다. 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. 
} 
+25

리터럴 값 -999 대신 상수 NSURLErrorCancelled를 사용하는 것이 더 좋습니다. – hasseg

+0

이것은 많은 수색 (감사)을 soo 바꿨다! – favo

+3

이 오류는 코드 냄새 일 수도 있습니다. 나는 그것을 무시하지 않고, viewDidLoad'에'viewDidAppear' (웹 뷰를로드하는 동안 여러 번 트리거 될 수있는)에서로드 - 트리거링 메소드 호출을 이동시킴으로써 제거했습니다. – clozach

28

NSURLErrorCancelled (-999)

"비동기 부하가 취소 될 때 그것은이 로딩 리소스에 작업을 취소 수행 할 때. 웹 키트 프레임 워크의 위임이 오류가 발생합니다 반환. 참고한다는있는 NSURLConnection 또는 다운로드가 취소되면 NSURLDownload 대리자는이 오류를받지 못합니다. "

내 상황에 대한

(그리고 아마도 당신)이 무시 될 수 있습니다

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

위의 두 응답은 로딩 요청이 취소 발생하는 경우 그냥 반환 할 > 정확했다.

또한 나는이 오른쪽에있는 문제를 안보에 의해 많은 시간 손실을 방지 할 수있는 사람 didFailLoadWithError 방법 내부에 NSLog을 넣어하는 것을 잊지 마세요 지적하고 싶다! (가 공공 인 경우)와 방법을 설정하는 코드에서이보기 및 대리인이 유용 할 수 있습니다

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