yılında progressView Güncelleştiremiyor. Birkaç yolu test ama başarılı aslaBen bu yöntemi ettik arka planda eylemi gerçekleştirmek ve mainThread
DÜZENLEME 1
Uygulama @Russell önerme, mükemmel, ama dispatch_async bloğunun içinde değerini hesaplayarak daima 0
hangi sonuç çalışmak bir sorun hakkında var mı operasyonlar ve multithread?
yöntemi:
func stepThree() {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
var current = 0
var total = 0
self.operation = "prDatas"
let entries = self.data.componentsSeparatedByString("|***|")
total = entries.count
for entry in entries {
++current
self.registerDB(entry)
dispatch_async(dispatch_get_main_queue(), {
print("value of 'current' is :" + String(current))
print("value of 'total' is :" + String(total))
print("Result is : " + String(Float(current/total)))
self.updateV(Float(current/total))
})
}
})
}
Konsol çıkışı:
value of 'current' is :71
value of 'total' is :1328
Result is : 0.0
Float - sonra ve - hesaplama ilk yapılır - tamsayılar ile sonuç (her zaman 0'dır) bir Float'a dönüştürülür. Çözümünde aynı sorunu yaşadım, bu yüzden her iki parametreyi de ilk önce floatlara dönüştürdüm. – Russell
Daha iyi çalışıyor, tekrar teşekkürler! – Khorwin