NSHTTPURLResponse* urlResponse = nil;
NSError *error = nil;
responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
В асинхронном запросе также должен быть способ получить NSHTTPURLResponse ..
Вы получите код состояния, подобный этому:
int statusCode = [urlResponse statusCode];
int errorCode = error.code;
В случае некоторых часто используемых кодов ошибок (например, 404) он будет вставлен в ошибку, но с другим кодом (401 будет -1012).