2013-10-24 2 views
2

Я только что обновил приложение от AFNetworking 1.3.3 до 2.0.1, что потребовало перезаписать мой сетевой клиент, который использовался для подкласса AFHTTPClient.AFNetworking 2 AFHTTPRequestОтмена блока блокировки отказа от ошибки userInfo

я выгружена AFHTTPClient для AFHTTRequestOperationManager (мне нужно поддерживать IOS 6) и все работает отлично, кроме этого:

Сервер дает мне ошибку строку JSON с деталями ошибки в: error.userInfo .localizedRecoverySuggestion

Однако этот ключ (localizedRecoverySuggestion) больше не находится в моем объекте NSError.

Кто-нибудь знает, как я могу получить к нему доступ? Или какая часть AFNetworking лишает его? Сервер по-прежнему отправляет его, он просто не делает это как объект ошибки в моих методах POST: etc.

Я потратил некоторое время на это, и я изо всех сил пытаюсь найти, где проблема.

ответ

1

После пятна отладки, похоже, данные принимает следующий путь через AFNetworking:

  1. AFURLConnectionManager подключение: didReceiveData:
  2. AFURLResponseSerialization validateResponse: данные: ошибка:

На который указывает, что он выброшен.

Так как быстро исправить, я просто добавил дополнительный словарной к этому методу, где создается USERINFO следующим образом:

NSLocalizedRecoverySuggestionErrorKey: [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] 

Это, очевидно, полный хак, но если кто-нибудь может дать указатель о том, как сделайте это правильно, я был бы очень благодарен.

Смежные вопросы