나는 애플의 NSURLSession # dataTaskWithURL 방법과 간단한 GET 요청을 수행하고하는 것은dataTaskWithURL의 NSURLResponse에서 상태 코드를 어떻게 가져 옵니까?
[[mySession dataTaskWithURL:myUrl completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
// fancy code goes here...
}] resume];
나는 상태 코드가 성공 된 경우 일을 할 수있는 조건을 갖고 싶어, 내가 같이 NSURLResponse 캐스팅해야 할 것으로 보인다 NSHTTPURLResponse .....
NSUInteger statusCode = ((NSHTTPURLResponse *)response).statusCode;
if (!error && statusCode == 200) {
// even fancier code goes here
} else {
// omg!!!!!!!!!
}
...
그러나 ---------- 내 질문은 : 왜!?!?!?!?!?!?! ?
왜 애플은 자신의 상태를 모르는 유형에 캐스팅 된 응답 객체를 전달할 것입니까?! 이 코드를 작성해야한다는 사실로 인해 나는 아주 잘못된 것을하고 있다고 생각하게되었고, 그것이 200, 404, 500인지 알 수있는 더 좋은 방법이 될 것입니다 ...
나는 completionHandler의 블록 인수 유형을 NSHTTPURLResponse로 변경할 수 있습니다. 그러나 그럴 필요는 없습니다.
롤 와우 복사 믿고 그냥 같은 다른 대답을 붙여 넣을 수 없습니다 ... http://stackoverflow.com/a/25431043/1474817 – emotality
@emotality : SO 공유를위한 플랫폼이다. 이 질문의 존재는 다른 대답이 충분히 보이지 않았 음을 보여줍니다. 그래서 여기에 가져 왔어. 이제 보았으니, '믿는다'. – Nishant
축하해. 당신 자신의 대답을주세요. 전형적으로 복사본과 깔끔합니다. – emotality