在到处搜索之后,我找不到这个实现有什么问题。我正在使用完成块函数和 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