1

応答を受信したときに特定のアクションを実行する必要がある GET サービス呼び出しがあります。

私の知る限り、デリゲート メソッド ブロックは、実際にはAFNetworking、リクエストが完全に完了または失敗したときにのみ通知します。

を少し詳しく見てみると、がコールバックAFNetworkingを取得することがわかりましたAFURLConnectionOperation

- (void)connection:(NSURLConnection __unused *)connection
didReceiveData:(NSData *)data;

さて、私の質問は、リクエストを開始したクラスでこのコールバックを取得するにはどうすればよいですか?

NSNotificationPS私は使用を送信するのにうんざりしていてNSNotificationCenter、通知を受けました。ただし、複数のリクエストがサーバーに同時に送信されたため、どのリクエストのレスポンスが通知されているのかを区別できませんでした。

編集

AFHTTPRequestOperationから継承されていることに気付いたので、メソッドをAFURLConnectionOpertaion実装できる可能性がありますが、ここでも問題は、そこからコールバックを送信する方法です。:(connection:didReceiveDataNSURLConnectionDelegate

4

1 に答える 1

3

これが機能する完全な例です。

    NSMutableURLRequest *request = [[HTTPClient sharedInstance] requestWithMethod:@"GET" path:iurl parameters:nil];
    AFHTTPRequestOperation *operation = [[HTTPClient sharedInstance] HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"success");
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"failure");
    }];
    [operation setDownloadProgressBlock:^( NSUInteger bytesRead , long long totalBytesRead , long long totalBytesExpectedToRead )
     {
         NSLog(@"%lld of %lld", totalBytesRead, totalBytesExpectedToRead);
     }
     ];
    [[HTTPClient sharedInstance] enqueueHTTPRequestOperation:operation];
于 2013-03-13T19:26:44.997 に答える