Objective-C - ожидание цикла с блоком (NSURLSessionDataTasks) перед продолжением

В поисках правильного способа выполнения цикла в моем коде, где внутри цикла я вызываю метод класса с возвращаемым блоком завершения, обратный вызов которого выполняется, как только я получаю данные обратно с помощью NSURLSessionDataTask(получение данных JSON). Я хочу, чтобы все задачи были выполнены, прежде чем делать что-либо еще в коде.

Код ниже:

for(Category *myObj in myArray){

        [AssetRequests resourceLinkForId:myObj.catId returning:^(NSString *pdfLink) {
            myObj.linkUrl = pdfLink;
        }];
    }

//another loop here and other code including return statement. I dont want this to be executed until my loop above is complete. 



+(void)resourceLinkForId:(NSString *)myId returning:(void (^)(NSString *))completionBlock{

NSString *urlString = @"whatever"
NSURL *baseURL = [NSURL URLWithString:urlString];
NSURLSessionDataTask *downloadResourcesTask = [[NSURLSession sharedSession] dataTaskWithURL:baseURL completionHandler:^(NSData *data, NSURLResponse *response, NSError *  error) {

  //check for errors/json errors, etc., parse Json, whatever else.  

  completionBlock(someString);

}];

[downloadTask resume];
}

Здесь есть такой же быстрый вопрос, где-то говорилось об использовании групп рассылки, но в этом случае он мне не помог бы по какой-то причине. Какой правильный способ решить эту проблему?

0 ответов

Другие вопросы по тегам