0

HTTP リクエストを送信するために、次のように NSURLConnection を使用しています。

NSURLConnection *connection = [[NSURLConnection alloc]
                               initWithRequest:request
                               delegate:self
                               startImmediately:YES];

connectionDidFinishLoading の最後に、完了したばかりの HTTP リクエストに応じて、さまざまな通知を送信する必要があります。ただし、connectionDidFinishLoading 内では、送信されたリクエストのタイプに対する明確な論理識別子がありません。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

// here i want to post various notifications, depending on the HTTP request that was completed 


}

ここでの最善の解決策は何ですか? ありがとう!

4

2 に答える 2

0

MKNetworkKitのようなフレームワークを使用できます。このフレームワークでは、次のように記述できます。

- (void) sendRequest: (NSString*) aRequestPath
          httpMethod: (NSString*) aHttpMethod
         paramsBlock: (SMFillParametersForRequestBlock) aParamsBlock
        successBlock: (SMSaveRequestResultBlock) aSuccessBlock
          errorBlock: (SMErrorRequestResultBlock) aErrorBlock
            userInfo: (id) anUserInfo
{

    MKNetworkEngine* network_engine= [[MKNetworkEngine alloc] initWithHostName: MuseumsHostName];

    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];

    if (aParamsBlock)
    {
        aParamsBlock(params);
    }

    MKNetworkOperation* operation = [network_engine operationWithPath: aRequestPath
                                                               params: params
                                                           httpMethod: aHttpMethod
                                                                  ssl: NO];
    [operation onCompletion: ^(MKNetworkOperation* completedOperation){

        // parse response of current request:
        aSuccessBlock(completedOperation, anUserInfo, ...); 

    } onError: ^(NSError *error){

       // error handler: call block

    }];

    [network_engine enqueueOperation: operation];
}

信じてください、これが最善の解決策です

于 2013-07-21T13:22:07.347 に答える