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 の最終リリースではブロックが別の方法で呼び出されるため、これはバグだったようです。

于 2013-09-30T05:01:31.560 に答える