Замена 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]
прежде чем ждать на семафор.