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 {
        // エラー処理
    }
}