AFHTTPSessionManager GET: ... n'effectue pas ses blocs lorsque le groupe de répartition attend. dispatch_group_wait attend vraiment "FOREVER". Dans mon code @ "tout fait" ne se produit jamais.AFNetworking 3.1.0 et les groupes de répartition
Comment puis-je le faire fonctionner?
(désolé, comme je vois, la plupart des gens sont intéressés de connaître la raison pour utiliser les groupes de dispatching ici.La raison est d'effectuer des demandes en boucle et attendez la dernière réponse est obtenu.J'ai intentionnellement montré ma boucle dans le code , parce que la boucle ne touche pas que les blocs ne sont pas effectués)
dispatch_group_t group = dispatch_group_create();
NSString *urlString = @"someURLForExampleReturnJSON";
dispatch_group_enter(group);
[self.sessionManager GET:urlString parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject)
{
NSLog(@"success block execution");
dispatch_group_leave(group);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"failure block execution");
dispatch_group_leave(group);
}];
dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
NSLog(@"all done");
hmm je ne pense pas que c'est ce qu'un dispatch_group est destiné à (en particulier comme celui-ci), vous devriez probablement utiliser un dispatch_semaphore à la place – Fonix
je ne suis pas en mesure de comprendre ce qui est l'utilisation de 'dispatch_group' ici ? Pouvez-vous s'il vous plaît expliquer ce dont vous avez besoin ici? Pourquoi utilisez-vous 'dispatch_group'? – CodeChanger
mieux si vous utilisez dispatch_group_notify – Andrea