我是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