0

我在 cocoapods (2.0.0-RC2) 上获得了 AFNetworking 版本,并且在 AFURLSessionManager.m 文件中,该方法不会在与成功块相反的主线程上调用失败块。这是故意的还是图书馆的错误?

- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
                                  success:(void (^)(NSURLResponse *response, id responseObject))success
                                  failure:(void (^)(NSError *error))failure
{
    NSURLSessionDataTask *task = [self.session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
        if (failure) {
            failure(error);
        }
    } else {
....
        id responseObject = [self.responseSerializer responseObjectForResponse:response data:data error:&serializationError];

            dispatch_async(dispatch_get_main_queue(), ^(void) {
                if (serializationError) {
                    if (failure) {
                        failure(serializationError);
                    }
                } else {
                    if (success) {
                        success(response, responseObject);
                    }
                }

}
4

1 回答 1

1

这似乎是一个错误,因为在 2.0 最终版本中,这些块以不同的方式调用,正如您在master 分支中看到的那样。

于 2013-09-30T05:01:31.560 回答