2

4xx 또는 5xx 오류가 발생할 경우 데이터 객체는 어떻게됩니까? 프로그램이 충돌합니까? 데이터 객체에 어떤 종류의 데이터 (응답 오류 또는 손상된 데이터)가 있습니까? 또는 데이터 객체가 nil과 같을까요?data = [NSData dataWithContentsOfURL : theUrl];

답변

4

당신은 nil 다시 얻을 것이다. 당신이 실패의 원인을 알고 싶은 경우에 사용합니다

[NSData dataWithContentsOfURL:options:error:] 

(reference는)

+0

4xx/5xx는 자동으로 오류로 간주됩니까? 문서화되지 않았습니다 ... – Sulthan

+0

4xx/5xx는 꼭 HTTP 오류입니다. W3 RFC를 확인하십시오 : http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html –

+1

@ShaiMishali 그게 무슨 뜻인지 압니다. 응답에 데이터가 없다는 의미는 아닙니다. 이것은 문서화되어야하는 것입니다. – Sulthan

1

NSData Class Reference에서 언급했다.

aURL에 의해 지정된 위치의 데이터를 포함하는 데이터 개체입니다. 데이터 오브젝트를 작성할 수없는 경우 nil을 리턴합니다.

0

클라이언트 관점에서 볼 때 4xx 또는 5xx는 오류가 아닙니다. 데이터를 포함 할 수있는 유효한 리턴 코드입니다 (스택 추적, 오류 이유). 당신은 행동이 문서화되지 않았다는 것이 맞습니다. 어떻게 알 수있는 유일한 방법은 그것을 테스트하는 것입니다 ...

+0

아니요, 서버에서 404 오류가 발생하면 'nil'이됩니다. – trojanfoe

+0

@ 트로이 호프 그러나 그것을 아는 유일한 방법은 그것을 테스트하는 것입니다 ... 나는 무엇이 반환 될지 말하지 않았고, 나는 그것이 문서화되지 않았다고 말했습니다. – Sulthan