AFHTTPSessionManager GET : 디스패치 그룹 대기시 블록을 수행하지 않습니다. dispatch_group_wait는 실제로 "FOREVER"를 기다립니다. 내 코드에서 @ "모두 완료"결코 발생하지 않습니다.AFNetworking 3.1.0 및 디스패치 그룹
어떻게 작동합니까?
(미안하지만 대부분의 사람들은 여기에 디스패치 그룹을 사용하는 이유를 알고 싶어합니다. 그 이유는 루프에서 요청을 수행하고 마지막 응답을 기다리는 것입니다. 의도적으로 코드에 루프를 표시하지 않았습니다. , 루프가 수행되지 않는 블록에 영향을 미치지 않기 때문에)
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");
흠, 당신은 아마 대신 – Fonix
을 dispatch_semaphore을 사용해야 여기 dispatch_group''의 사용이 무엇인지 이해할 수 없습니다입니다 ? 여기서 필요한 것을 설명해 주시겠습니까? 왜 당신은'dispatch_group'을 사용합니까? 미안하지만 dispatch_group_notify – CodeChanger
이 좋습니다. dispatch_groups를 사용하는 이유를 설명해야했습니다. – Andrea