私はobjective-cが初めてで、現在、サーバーからファイルをダウンロードし、ダウンロードしたファイルに対して何らかの操作を行うコードを書いています。ディスパッチキューとディスパッチグループについて混乱しています。
したがって、dowanloadZip という関数があり、この downloadZip 関数内で、startHttp という別の関数を使用してリクエストを発行していますが、この関数は非同期です。完了ブロックが終了するまで待つ必要があり、ファイルが完了しているかどうかを確認し続けることができます。基本的に、完了ブロックが終了するまで待つ必要があり、それから他のことを続けることができます。私のコードは次のようになります。
-(void)downloadZip:(NSString *url){
...
urlRequest = [reqeustMangaer urlStrig:url]
[requestManager startHttp:urlReuqest completionBlock:^(resposne){
//check response here
}]
}
ディスパッチ キューを使用するように言われた人もいれば、ディスパッチ グループを使用するように言った人もいました。実際に両方を使用しているコードを見つけました。私が読んだコードは、最初にディスパッチ グローバル キューを使用し、次にキュー内でディスパッチ グループ エンターを使用していました。最初にディスパッチ キューを作成してから、完了ブロック内にグループを入力する必要がありますか? それとも単にディスパッチ グループを使用しますか? (バックグラウンドスレッドにしたい)。また、downloadZip 関数を別の場所で呼び出す必要がある場合は、どうすればよいでしょうか?