0

在到处搜索之后,我找不到这个实现有什么问题。我正在使用完成块函数和 RACSignal 包装器对与下面相同的函数进行 api 请求调用。

不知道为什么它会崩溃

[RACSignal createSignal:^RACDisposable *(id <RACSubscriber> subscriber)
{
    @strongify(self);
    NSMutableURLRequest *request = [self prv_createURLRequestFromApiRequest:apiRequest
                                                                 credential:credential
                                                                 subscriber:subscriber];

    DebugHelperLog(kLoggingCategory, request.URL.absoluteString);

    HttpTaskType taskType = kHttpDataTask;
    if (apiRequest.isMultiparts)
    {
        taskType = kHttpUploadTask;
    }

    NSDate *startDt = [NSDate date];
    
    [self afnetworkingRequestWithCompletion:request
                                   taskType:taskType
                            progressHandler:^(NSProgress *progress) {
                                
                                if (progress)
                                {
                                    [subscriber sendNext:progress];
                                }
                            }
                      withCompletionHandler:^(NSHTTPURLResponse *httpResponse, id responseObject, NSError *error) {
                          
                           DebugHelperLog(kLoggingCategory, responseObject);

                           [[APIClientProfiler sharedInstance] registerApiRequest:request taskType:taskType duration:[[NSDate date] timeIntervalSinceDate:startDt] isSuccess:!error];
                          
                           if (error)
                           {
                               APIClientError *apiClientError = [APIClientError errorWithHttpResponse:httpResponse
                                                                                              request:request
                                                                                         responseBody:responseObject
                                                                                           apiRequest:apiRequest
                                                                                                error:error];

                               DDLogError(@"APIClient error: %@", error);
                               [subscriber sendError:apiClientError];
                           }
                           else
                           {
                               DDLogError(@"REQUESTCALLEDSUCESS: %@", apiRequest.path);
                               APIResponse *apiResponse = [APIResponse responseWithHttpResponse:httpResponse
                                                                                   responseBody:responseObject];
                               [subscriber sendNext:apiResponse];
                               [subscriber sendCompleted];
                           }
                       }
    ];
    return nil;
}]

抛出异常 NSException * "-[ NSMallocBlock isDisposed]: 无法识别的选择器发送到实例 0x60000084ead0" 0x0000600003a24ff0

4

0 回答 0