문제

NSMutableUrlRequest를 사용하여 웹 사이트에 연결하여 JSON 응답을 얻었습니다. 요청을 생성 한 다음 비동기 연결을 처리하기 위해 자체 대의원과 NSURLConnection을 사용하여 그렇게하고 있습니다. 나는 모든 정상적인 대의원 방법을 구현했습니다.

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection

모든 것은 데이터를 되찾고 발생하는 오류 등을 처리하는 등 완벽하게 작동합니다. 그러나 NSURLRequest의 시간 초과는 10 초로 설정된 경우 해당 방법에서 호출되지 않는 것 같습니다 (DidFailWithError가 호출 될 것으로 예상). 그것은 단지 영원히 거기에 앉아 있고 나는 그것이 시간을 내렸다는 알림이 없습니다.

iPhone API 문서를 읽는 것은 무엇에 대한 언급이 없습니다. ~해야 한다 시간 초과가 발생하면 시간 초과 값을 설정할 수 있습니다. 어떻게해야합니까? API에서 도움이 될 다른 대표 방법을 보지 못했습니다. 시간 초과를 수동으로 확인할 필요가 없습니다. 시간 초과는 동기 요청에 대해서만 있습니까?

도움이 되었습니까?

해결책

이 방법으로 시간 초과가 수신됩니다.

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

다른 팁

U는 그러한 유형의 iofo를받을 것입니다.

실패했습니다

오류 : 오류 도메인 = NSURLERRORDOMAIN CODE = -1001 USERINFO = 0XED4870 "시간 타임 아웃"

시간 초과 동작은 약간 기발합니다 이 스레드 Apple의 개발자 포럼에서.

내가 한 일은 이것이었습니다.

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
    if (error.code == -1001){
        [self showTimeoutAlert];//My method to show dialog with timeout message.
    } else {
        [self showInvalidURLAlert];//My method to show dialog with bad URL message.
    }
}

-1001 이전에 말했듯이 타임 아웃에 대한 것과 같이, 다른 테스트에서는 -1003을 얻었습니다 (불량 URL 또는 연결 불가능).

나는 타임 아웃을 치료하려고 했으므로 다른 모든 것을 나쁜 URL로 취급했습니다.

각 방법에 로그 문장을 넣고 그들이 무엇을 제공하는지 확인하십시오. 시간이 지나면 콘솔에서 시간 초과에 대한 알림을받습니다. 나는 그 알림을 받고있다. 코드를 확인하고 여전히 문제가있는 경우 알려주십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top