Я использую RestKit в приложении для iOS, и мне нужно иметь специальную обработку для определенных кодов ошибок HTTP. Как можно проверить код состояния HTTP ответа внутри request:didFailLoadWithError:? Есть ли какая-то запись в userInfo словаре NSError?
request:didFailLoadWithError:
userInfo
NSError
Я не смог найти ничего в RKRequestDelegate документации .
RKRequestDelegate
Вот интерфейс для метода делегата:
- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error
Для людей, использующих новую версию RESTkit и objectManager, вы можете получить код состояния из RKObjectRequestOperation:
RKObjectRequestOperation
operation.HTTPRequestOperation.response.statusCode
Оказывается, didFailLoadWithError: не вызывается для ошибок HTTP. Метод request:didLoadResponse: по-прежнему вызывается для ошибок HTTP, поэтому ответ (и, следовательно, коды состояния) доступны.
didFailLoadWithError:
request:didLoadResponse:
Свойство statusCode, найденное на RKResponse, работает для меня:
statusCode
RKResponse
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error { switch ([[objectLoader response] statusCode]) { case 409: ... }