Dans mon cas, quand une application se lance, je veux appeler 3 API Web en utilisant NSURLSessionDataTask
. J'ai 3 méthodes différentes pour chaque API et à l'intérieur de chaque méthode, il y en a une NSURLSessionDataTask
.Comment exécuter plusieurs NSURLSessionDataTask en série?
Je veux façonner mon code de telle sorte que ces 3 méthodes s'exécutent en série. Parce que la méthode B dépend de la réponse de la méthode A et que la méthode C dépend de la réponse de la méthode B. Chaque méthode effectue également une opération de base de données après l'obtention de la réponse de l'API. Donc, j'ai besoin de l'exécution en série de methodA
, methodB
et methodC
.
Je sais que c'est une chose logique mais je veux utiliser dispatch_semaphore_t
ou dispatch_group_wait
mais je n'ai absolument aucune idée sur la façon dont je peux utiliser ceux-ci dans une conjonction avec NSURLSessionDataTask
.
J'ai essayé avec ceci:
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
[self syncA:^(BOOL success) {
NSLog(@"syncA — Completed");
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
[self syncB:^(BOOL success) {
NSLog(@"syncB — Completed");
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
[self syncC:^(BOOL success) {
NSLog(@"syncC — Completed");
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
NSLog(@"************* END OF SYNC *************");
Le code ci-dessus est collé sur 1ère méthode .. S'il vous plaît aidez-moi .. merci d'avance !!!
utilisez NSOperationQueue pour toutes les opérations en série. –
Conceptuellement, 'NSURLSession' est une file d'attente d'opération !!! – NSPratik
regardez dans cette question http://stackoverflow.com/questions/21198404/nsurlsession-with-nsblockoperation-and-queues –