Замена sendSynchronousRequest на NSURLSession в инструментах командной строки

Попытка заменить устаревшие вызовы sendSynchronousRequest в нескольких инструментах командной строки, которые я написал. Завершение Handler не вызывается. Основываясь на несколько схожих вопросах, я пытался использовать семафор, но все равно не испытывал радости. (Большинство опубликованных вопросов касаются приложений, а не инструментов командной строки.) Цените любую помощь. Вот мой фрагмент кода:

void ebayApiCall(NSMutableURLRequest * request, NSError *error) {

    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    NSURLSessionDataTask * dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:
                                   ^(NSData *data, NSURLResponse *response, NSError *error) {
                                       NSLog(@"\nCompletionHandler\n");
                                       responseFromEbay = data; //responseFromEbay is global
                                       dispatch_semaphore_signal(sema);
                                   }];

    dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
    [dataTask resume];
}

1 ответ

Вам просто нужно позвонить [dataTask resume] прежде чем ждать на семафор.

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