HTTPレスポンスのステータスコードを取得したい
HTTPレスポンスのヘッダ部文の受信完了時に呼び出される connection:didReceiveResponse: の中で NSHTTPURLResponse にキャストした response からステータスコードを取得しインスタンス変数にセットし、HTTPレスポンス受信完了時に呼ばれる connectionDidFinishLoading: の中でステータスコードに応じた処理を行う。(なにかの呪文みたいだ)
ステータスコードを取得するためには NSURLResponse を NSHTTPURLResponse にキャストしてあげなきゃいけないあたり罠度が高いと言えよう。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { NSHTTPURLResponse *res = (NSHTTPURLResponse *)response; statusCode = [res statusCode]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { if (statusCode == 200) { // 通常処理 } else { // エラー処理 } }