1

我正在尝试覆盖 AFHTTPClient 中的 -HTTPRequestOperationWithRequest:success:failure: 方法,如以下代码所示:

-(AFHTTPRequestOperation *)HTTPRequestOperationWithRequest:(NSURLRequest *)urlRequest success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure {
  AFHTTPRequestOperation *requestOperation = [super HTTPRequestOperationWithRequest:urlRequest success:success failure:failure];

  [requestOperation setWillSendRequestForAuthenticationChallengeBlock:^(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge) {

  }];

  return requestOperation;
}

当我尝试编译它时,虽然我收到以下错误:

'AFHTTPRequestOperation' 没有可见的@interface 声明选择器'setWillSendRequestForAuthenticationChallengeBlock:'

setWillSendRequestForAuthenticationChallengeBlock: 方法在 AFURLConnectionOperation 中定义,但 AFHTTPRequestOperation 是一个子类,因此该方法也应该在 AFHTTPRequestOperation 中可用。

我没有太多的objective-c经验,所以也许我在做一些愚蠢的事情,但我找不到编译错误的原因。

4

1 回答 1

0

好的,我发现了问题。我必须定义

#define _AFNETWORKING_PIN_SSL_CERTIFICATES_

在我尝试调用 setWillSendRequestForAuthenticationChallengeBlock 的文件中:

我知道 cocoapods 已经在 Pods-prefix.pch 中做了 #define 并且没想到应该再次定义它。

于 2013-07-09T20:00:38.823 回答