AFNetworking 2 AFHTTPRequestOperation失败阻止从错误userInfo中剥离密钥

时间:2013-10-24 19:10:30

标签: ios objective-c afnetworking afnetworking-2

我刚刚将我的应用程序从AFNetworking 1.3.3更新为2.0.1,这需要重写我曾经用于子类AFHTTPClient的网络客户端。

我将AFHTTPClient替换为AFHTTRequestOperationManager(我需要支持iOS 6),除此之外一切正常:

服务器给我一个JSON错误字符串,其中包含错误的详细信息: error.userInfo.localizedRecoverySuggestion

但是,此键(localizedRecoverySuggestion)不再位于我的NSError对象中。

有人知道我怎么能访问它吗?或者AFNetworking的哪个部分正在剥离它?服务器仍在发送它,它只是不像我的POST:etc方法中的错误对象那样。

我花了一些时间在这上面,我很难找到问题所在。

1 个答案:

答案 0 :(得分:1)

经过调试后,看起来数据通过AFNetworking采用以下路径:

  1. AFURLConnectionManager连接:didReceiveData:
  2. AFURLResponseSerialization validateResponse:data:error:
  3. 此时它被扔掉了。

    所以作为一个快速修复,我只是在该方法中添加了一个额外的字典条目,其中userInfo的创建如下:

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

    这显然是一个完整的黑客,但如果有人能指出如何正确完成这一点,我将非常感激。