я пытаюсь загрузить или загрузить изображения с помощью Nuke (рамок для загрузки и кэширование изображений) и Firebase для загрузки изображений в качестве интерфейсаЗагрузка/загрузка нескольких изображений в правильном направлении?
для одного файла это легко справиться без каких-либо проблем но для нескольких я действительно не знаю, что делать правильно У меня проблемы, когда он не выполняет эту работу синхронно Загружает второе изображение перед первым, иногда
Я покажу свой способ загрузка и загрузка нескольких изображений
Для загрузки я поставил код для цикла
func downloadImages(completion: (result: [ImageSource]) -> Void){
var images = [ImageSource]()
for i in 0...imageURLs.count-1{
let request = ImageRequest(URL: NSURL(string:imageURLs[i])!)
Nuke.taskWith(request) { response in
if response.isSuccess{
let image = ImageSource(image: response.image!)
images.append(image)
if i == self.imageURLs.count-1 {
completion(result: images)
}
}
}.resume()
}
}
И для загрузки, где пользователь выбирает изображения сборщика изображений форму и вернуть его как NSData массив А затем выполнить этот код
func uploadImages(completion: (result: [String]) -> Void){
let storageRef = storage.referenceForURL("gs://project-xxxxxxxxx.appspot.com/Uploads/\(ref.childByAutoId())")
var imageUrl = [String]()
var imgNum = 0
for i in 0...imageData.count-1 {
let imagesRef = storageRef.child("\(FIRAuth.auth()?.currentUser?.uid) \(imgNum)")
imgNum+=1
let uploadTask = imagesRef.putData(imageData[i], metadata: nil) { metadata, error in
if (error != nil) {
print("error")
imageUrl = [String]()
completion(result: imageUrl)
} else {
print("uploading")
// Metadata contains file metadata such as size, content-type, and download URL.
let downloadURL = metadata!.downloadURL()?.absoluteString
print(downloadURL)
imageUrl.append(downloadURL!)
if i == imageUrl.count-1{ //end of the loop
print("completionUpload")
completion(result: imageUrl)
}
}
}}
Это хороший способ выполнить эту задачу?
Что мне делать, чтобы каждое скачивание изображений было упорядочено?
пожалуйста, дайте мне что-нибудь, что может помочь пример кода, ссылка и т.д. ..
Заранее спасибо
Спасибо, я решил его по вызову в рамках завершения загрузки изображения и добавления некоторых if-утверждений, теперь он работает так, как ожидалось, и никогда не возвращается без завершения загрузки –