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");
うーん、私はいけないが、私はdispatch_group' 'の使用はここにあるかを理解することはできませんよ、これはdispatch_groupは(特にこのような)のために意図されたものだと思う、あなたはおそらく代わりに – Fonix
をdispatch_semaphoreを使用する必要があります?ここで必要なものを説明してください。なぜ 'dispatch_group'を使うのですか?あなたがdispatch_group_notify – CodeChanger
。 dispatch_groupsを使用する理由を説明しなければならなかった – Andrea