0

私はobjective-cが初めてで、現在、サーバーからファイルをダウンロードし、ダウンロードしたファイルに対して何らかの操作を行うコードを書いています。ディスパッチキューとディスパッチグループについて混乱しています。

したがって、dowanloadZip という関数があり、この downloadZip 関数内で、startHttp という別の関数を使用してリクエストを発行していますが、この関数は非同期です。完了ブロックが終了するまで待つ必要があり、ファイルが完了しているかどうかを確認し続けることができます。基本的に、完了ブロックが終了するまで待つ必要があり、それから他のことを続けることができます。私のコードは次のようになります。

-(void)downloadZip:(NSString *url){
  ...
  urlRequest = [reqeustMangaer urlStrig:url]
  [requestManager startHttp:urlReuqest completionBlock:^(resposne){
     //check response here
  }]  
}

ディスパッチ キューを使用するように言われた人もいれば、ディスパッチ グループを使用するように言った人もいました。実際に両方を使用しているコードを見つけました。私が読んだコードは、最初にディスパッチ グローバル キューを使用し、次にキュー内でディスパッチ グループ エンターを使用していました。最初にディスパッチ キューを作成してから、完了ブロック内にグループを入力する必要がありますか? それとも単にディスパッチ グループを使用しますか? (バックグラウンドスレッドにしたい)。また、downloadZip 関数を別の場所で呼び出す必要がある場合は、どうすればよいでしょうか?

4

0 に答える 0