Как я могу запустить несколько запросов в блоке успеха из 1 запроса и дождаться завершения?Операции запроса на выполнение в цикле внутри операции
[manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"%@ Response: \n%@", url, responseObject);
resultsArray = [[NSMutableArray alloc] init];
for (NSDictionary *json in [responseObject objectForKey:@"items"]) {
[self getDetails:json];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[SVProgressHUD dismiss];
}];
Где в getDetails: (ID) JSON является метод, чтобы загрузить группу запросов, параметры которых на основании результата основного запроса.
Например: Я хотел бы запросить у API список студентов, а затем блок успеха. Для каждого ученика я хотел бы получить связанные данные из другой таблицы (другой запрос) и поместить их в свой NSObject.
EDIT Вот мой метод getDetails
- (AFHTTPRequestOperation *)getDetails:(NSDictionary *)json
{
NSLog(@"Start Op %@",[json objectForKey:@"related_salon"]);
NSString *url = [NSString stringWithFormat:@"%@read/salons/%@",SERVER_API_URL,[json objectForKey:@"related_salon"]];
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:req];
//op.responseSerializer = [AFJSONResponseSerializer serializer];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success %@",[json objectForKey:@"name"]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failed Op %@",error.localizedDescription);
}];
//AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:req];
//op.responseSerializer = [AFJSONResponseSerializer serializer];
[op start];
return op;
}
Я не уверен в этом, так как я еще не запускал операции серийно. Почему бы не использовать 'AFHTTPRequestOperationManager' и операции очереди в своей очереди операций, добавляя зависимости для последующих операций? Это ** может ** дать вам серийное исполнение (опять же, не уверен). – n00bProgrammer