1

私は Objective C の初心者で、2 つの連続した HTTP GET を (次々に) 実行しようとしています。これまでに得たのは、最初の NSURLSessionDataTask の完了ブロック内に NSURLSessionDataTask があることです。これにより、コードが少し読みにくくなっているので、これを行うより良い方法は何だろうかと考えていました。サンプルコードは次のとおりです。

{
    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];    
    NSURLSession *session = [NSURLSession sessionWithConfiguration:config];

    NSMutableURLRequest *url_request_1 = [NSMutableURLRequest requestWithURL:@"some_url_1"];
    [url_request_1 setHTTPMethod:@"GET"];

    NSURLSessionDataTask *url_task_1 = [session
        dataTaskWithRequest:url_request_1
        completionHandler:^(NSData *data1,
        NSURLResponse *response1,
        NSError *error1) {

            if(data1 !=nil){
                // Evaluate some_url_2 from the response of url_task_1

                NSMutableURLRequest *url_request_2 = [NSMutableURLRequest requestWithURL:@"some_url_2"];
                [url_request_2 setHTTPMethod:@"GET"];

                NSURLSessionDataTask *url_task_2 = [session
                     dataTaskWithRequest:url_request_2
                     completionHandler:^(NSData *data2,
                     NSURLResponse *response2,
                     NSError *error2) {

                        if(data2 !=nil){      
                            // Process data here                 
                        } else {
                            // Handle error here.
                            return;
                        }
                    }];

                [urlRequest2 resume];
            }
            else{
                // Handle error here
                return;
            }
        }];

    [url_task_1 resume];
}
4

1 に答える 1