2017-04-03 16 views
0

すべてalamofire要求が終了したときに何かをすると、私はその配列内の各URLのalamofire要求を作りたい:は、私は、URLの配列を得た

func getData(completion: @scaping(_success: Bool) -> Void) { 
    for url in self.myArray { 
    Alamofire.request(url).responseImage { response in 
     if let image = response.result.value { 
      print(image) 
      completion(true) 
     } 
    } 
    } 
} 

問題は、私は知ることができないときに、すべての要求をおそらくループがforで終了している可能性があります。完了ハンドラを使用しています。 getDataの成功に対して何かしようとすると、いくつかのリクエストはまだ完了していません。

あなたは(あなたがた)持っているどのように多くのURLを知っていれば、私はちょうどあなたが完了ハンドラにアクセスする頻度のカウントを保持すべての要求が行われた後、更新のtableView

+0

ディスパッチグループを参照してください。 –

+0

私はちょうど私が探していたものと思う、ありがとう –

答えて

0

のように、何かをしたいと思います- このようなもの。

func getData(completion: @scaping(_success: Bool) -> Void) { 
    var urlCounter = self.myArray.count 
    for url in self.myArray { 
     Alamofire.request(url).responseImage { response in 
      if let image = response.result.value { 
       print(image) 
       completion(true) 
       urlCounter -= 1 
       if urlCounter == 0 
       { 
        // everything finished - do completion stuff 
       } 
      } 
     } 
    } 
} 
関連する問題