Voglio eseguire una logica aggiuntiva dopo l'elaborazione dell'ultimo elemento, ma il terminale mostra che i
ha sempre lo stesso valore di c
. Qualche idea su come passare la variabile del ciclo in?Passare il valore alla chiusura?
let c = a.count
for var i=0; i<c; i++ {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {
// ..
dispatch_async(dispatch_get_main_queue(), {
println("i \(i) c \(c)")
if i == c-1 {
// extra stuff would come here
}
})
})
}
Chiusure catturare variabili fro loro ambito esterno, quindi questo codice dovrebbe andare bene. Si prega di fornire dove si inizializza 'c'. –
Questo è destinato a raggiungere un limite di threading se il valore di 'c' è troppo alto ... –