0

IOS で次のコードを実行しようとしています。

AFHTTPRequestOperation *requestOperation = [self.httpClient HTTPRequestOperationWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.url.text]]
                                         success:^(AFHTTPRequestOperation *operation, id responseObject) {
                                           NSLog(@"reply data = %@", [[NSString alloc] initWithData:operation.responseData encoding:NSUTF8StringEncoding]);
                                         }
                                         failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                           NSLog(@"%@", error);
                                         }];
[requestOperation setAuthenticationAgainstProtectionSpaceBlock:^BOOL(NSURLConnection *connection, NSURLProtectionSpace *protectionSpace) {
  return YES;
}];

次に、次のようなエラーが表示されます。

-[AFHTTPRequestOperation setAuthenticationAgainstProtectionSpaceBlock:]: 認識されないセレクターがインスタンス 0x75a81f0 に送信されました

私が渡しているブロックを見る限り、正しい戻り値の型とパラメーターがあります。ここで何が間違っていますか?

4

1 に答える 1

5

_AFNETWORKING_PIN_SSL_CERTIFICATES_AFURLRequestOperation は、が定義されているかどうかに応じて、特定のデリゲート コールバック メソッドを使用して条件付きでコンパイルします。

そうである場合 (CocoaPods からインストールする場合のデフォルト)、setWillSendRequestForAuthenticationChallengeBlock:利用可能になります。それ以外の場合は利用可能setAuthenticationAgainstProtectionSpaceBlock:setAuthenticationChallengeBlock:なります。

setWillSendRequestForAuthenticationChallengeBlockconnection:willSendRequest:forAuthenticationChallenge:これは、課題を処理するための優先デリゲート メソッドです。

于 2013-06-28T17:46:39.440 に答える