S3バケットから複数の画像を並列してダウンロードしようとしていますが、すべて完了したら知りたいと思っています。 AWSS3TransferUtilityのインスタンスからこの1 AWSTaskが返さiOS(Swift)のAWS S3バケットからオブジェクトをParallellでダウンロードする
func downloadImage(key: String) -> AWSTask
されています:
downloadDataFromBucket:key:expression:completionHander:
私がしたい私は、私は次のシグネチャで書かれている機能を使用してオブジェクトのダウンロードを実行することができていますこのコードのイメージリストで
for image in imageList {
downloadTaskList.append(downloadImage(image))
}
AWSTask(forCompletionOfAllTasks:downloadTaskList).continueWithBlock {
(task: AWSTask!) -> AnyObject! in
print("All images downloaded")
return nil
}
は、文字列とdownloadTaskListのリストであるリストのWHEです:完全なダウンロードのすべてのように、私はこのコードを試してみましたが、時にいくつかのコードを実行しますすべてのAWSTaskが追加されます。
問題は、画像がダウンロードされる前に「ダウンロードされたすべての画像」が即座に印刷されることです。これは、downloadDataFromBucketから返されたAWSTaskが、ダウンロードが完了したときにダウンロードが開始されたときにcompletetとみなされるためです。この作業を行う代わりに、どのAWSTaskをリストに追加できますか?私はdownloadDataFromBucketの完了ハンドラを追加しようとしましたが、AWSTaskではありません。
これはAWSのデフォルトの実装ではないというのは本当にダムです。これについて私の頭を引っ張って時間を浪費しました。これは私の既存のコード構造を使った簡単な修正でした! –