Objective c 使用AFNetworking 2.0发布帖子时的EXC_错误访问

Objective c 使用AFNetworking 2.0发布帖子时的EXC_错误访问,objective-c,http,post,afnetworking-2,Objective C,Http,Post,Afnetworking 2,我的代码: AFHTTPSessionManager *manager = [AFHTTPSessionManager manager] ; manager.requestSerializer = [AFJSONRequestSerializer serializerWithWritingOptions:NSJSONReadingAllowFragments]; manager.responseSerializer = [AFJSONResponseSerializer serializerWi

我的代码:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager] ;
manager.requestSerializer = [AFJSONRequestSerializer serializerWithWritingOptions:NSJSONReadingAllowFragments];
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
[manager POST:[_urlBase stringByAppendingPathComponent:_urlRequest]
         parameters:paramDictionary
         success:^(NSURLSessionDataTask *task, id responseObject){
             dispatch_async(dispatch_get_main_queue(),^{
                 [self AFRequestFinished:responseObject];
             });
         }
         failure:^(NSURLSessionDataTask *task, NSError *error){
             NSLog(@"JSON ERROR PARAMETERS: %@", error);
         }
];
我正在使用此
POST
请求将几种类型的数据连同图片一起发送到服务器。
我在
GET
请求中使用了非常类似的东西,效果很好。每当我运行此代码时,在AFNetworking 2.0的下一行上就会出现
EXC\u BAD\u ACCESS code=1
错误。响应对象是
0x0

responseObject = [self.responseSerializer responseObjectForResponse:task.response data:[NSData dataWithData:self.mutableData] error:&serializationError];
上述代码行位于中的if/else方法中:

- (void)URLSession:(__unused NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
更新


我在代码上运行了仪器,如果有僵尸出现
AFNetworking
正在尝试调用
N错误,但该错误已被解除分配。我认为出现这种情况是因为
POST
调用最初成功,但仍有一个错误被标记。因此,它最初认为没有错误,并将其设置为
nil
,但随后尝试在
POST
的错误块中调用它

如果您使用的是最新版本,则可能会遇到JSON序列化程序返回错误的情况。您可以通过以下方式解决此问题,直到发布新版本:

  • 删除序列化程序中的
    @autoreleasepool
    ,或
  • 将错误范围更改为自动释放池之外
(以上链接的问题概述了这两种解决方案。)


另一方面,不需要在完成处理程序中分派到主队列。AFNetworking保证在主线程上调用完成块。

self.mutableData
nil
?如果是这样,那么这可能是一个很好的问题,可以发布在.self.mutableData!=无
问题似乎是对已解除分配的错误的调用谢谢!这终于使它起作用了。我将更新我的完成处理程序以删除dispatch\u async。没问题!很乐意帮忙。