У меня есть CollectionView, для заполнения которого я использую изображения из хранилища Firebase. Я храню изображения в узле «userId». Я хочу проверить наличие файлов в большом количестве, доступных под узлом, чтобы я мог хранить их в массиве.
Я попытался получить URL-адреса отдельно для каждого, однако я считаю, что это очень неправильный подход. Но я не мог понять, как это сделать наиболее эффективно и куда поставить collectionView.reload()
. Вот что я сделал:
let storage = FIRStorage.storage()
let firstImageRef = storage.referenceForURL("gs:storageUrl").child(uid).child("profile.jpg")
firstImageRef.downloadURLWithCompletion { (URL, error) -> Void in
if (error != nil) {
print(error)
} else {
if let url = URL {
self.databaseImagesOrder.append(url)
}
}
}
let secondImageRef = storage.referenceForURL("gs:storageUrl").child(uid).child("second_pic.jpg")
secondImageRef.downloadURLWithCompletion { (URL, error) -> Void in
if (error != nil) {
print(error)
} else {
if let url = URL {
self.databaseImagesOrder.append(url)
}
}
}
// etc..
collectionView.reloadData()
Кроме того, лучше ли извлекать изображение как NSData лучше, чем сначала извлекать URL-адреса, а затем извлекать изображения? Если да, то как я могу массово получать изображения из хранилища Firebase?
collectionView.reload()
, если я делаю их отдельно. - person senty   schedule 15.06.2016