Sorozatos feltöltés / soros sorból alamofire

szavazat
0

Én használ Alamofire, és a soros DispatchQueue, hogy megpróbálja feltölteni egy képet egy időben egy sor képek. Szeretnék feltölteni egy olyan időpontban, így tudom frissíteni egyetlen előrelépés HUD, mint az egyes feltöltések megy keresztül. Saját kód így néz ki:

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
        })
    }
}

A probléma az, hogy a uploadImage()hívások minden végrehajtó egyszerre. Azt hiszem, ez azért van, mert Alamofirekérések futnak aszinkron. Van ötleted, hogyan lehet a legjobban megoldani ezt?

A kérdést 02/12/2019 23:56
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Alamofire fut a saját háttérben sorban, így próbálja

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])
        }
    })
}

Hívás

uploadimg(images.first!)
Válaszolt 03/12/2019 00:17
a forrás felhasználó

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