我是Objective C的初学者,我正在寻找两个连续的HTTP GET(一个接一个)。到目前为止我所拥有的是在第一个NSURLSessionDataTask的完成块内部有一个NSURLSessionDataTask。这导致我的代码有点不可读,所以我想知道什么是更好的方法来做到这一点? 下面是一些示例代码:为两个连续HTTP GET嵌套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];
}
@Velox - 手动改变问题的缩进可能使它更具可读性,但你现在正在模糊Tywin如何编写他的代码的一个基本问题。 – Rob