Carica sequenziale / coda di serie con alamofire

voti
0

Sto usando Alamofiree un serial DispatchQueueper cercare di caricare una sola immagine alla volta da una serie di immagini. Vorrei caricare uno alla volta, in modo da poter aggiornare un singolo corso HUD come ogni upload passa attraverso. Il mio codice simile a questa:

let serialQueue = DispatchQueue(label: project.serialQueue)
for image in images {
    serialQueue.async {
        uploadImage(image: image, progress: { progress in 
            //update progress HUD
        }, completion: { json, error in 
            //dismiss HUD
        })
    }
}

Il problema è che le mie uploadImage()chiamate sono tutti in esecuzione in una sola volta. Penso che questo sia perché Alamofirele richieste sono gestite in modo asincrono. Tutte le idee sul modo migliore di risolvere questo problema?

È pubblicato 02/12/2019 alle 23:56
fonte dall'utente
In altre lingue...                            


1 risposte

voti
1

Alamofire corre nella sua coda di background, in modo Si può provare

var counter = 0
func uploadImg(_ img:UIImage) {
    uploadImage(image: img, progress: { progress in 
        //update progress HUD
    }, completion: { json, error in 
        //dismiss HUD
        self.counter += 1
        if self.counter < images.count {
           self.uploadImg(images[counter])
        }
    })
}

Chiamata

uploadimg(images.first!)
Risposto il 03/12/2019 a 00:17
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more