Firebaseストレージを使用して4つのgifが保存されていて、Realtime Databaseを使用してダウンロードURLを取得し、アレイに追加しています。問題は、配列を反復処理してそれらをダウンロードしたいとき、それらが常に正しい順序でダウンロードされるとは限りません。実際には、毎回ランダムな順序でダウンロードされます。Firebaseが正しい順序でGIFをダウンロードしていない - iOS
これまでの私のコード:
if self.downloadURLS.isEmpty == true {
} else {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) {
var newItems: [UIImage] = [UIImage]()
for (index, element) in self.downloadURLS.enumerate() {
print("Item \(index): \(element)")
self.storageRef = self.storage.referenceForURL(element)
self.storageRef.dataWithMaxSize(5 * 1024 * 1024) { (data, error) -> Void in
if (error != nil) {
// Uh-oh, an error occurred!
} else {
self.image = UIImage(gifData: data!, levelOfIntegrity: 1)
print("Downloaded \(index)")
newItems.append(self.image)
}
}
self.items = newItems
}
}
print(downloadURLS.joinWithSeparator("\n"))
}
は、彼らがダウンロードすることを確認することのいずれかの方法がありますが、正しい順序であるか、私が最後に使用できる方法を並べ替えのいくつかの並べ替えはありますか?それが最後に完了した時間:2,3,0,1 ...どんな助けも素晴らしいだろう!
ありがとうございました!これは完全に機能します。もちろん、dataWithMaxSizeはあなたの言ったように非同期で実行されます。もう一度、あなたに十分に感謝することはできません! – riverhawk
@riverhawk私は助けることができてうれしいです;) –