Мне нужно разобрать довольно много текста и хотеть предоставить некоторую обратную связь пользователю во время этого события.UIProgressView и регулярное обновление (в Swift)
Окружающая среда Swift и, хотя я вижу код в Obj-C ([self performSelector: @selector (.....)), это не имеет большого смысла. Если бы я знал, как это сделать и внедрить в Swift-подход, я бы это сделал.
Я могу суммировать проблему с небольшим воспроизводимым случаем, дающим тот же результат. то есть в пределах цикла, увеличивать значение, показывать прогресс и возвращаться до завершения. Очевидно, что прогресс не будет показан, потому что iOS ждет, пока цикл не будет выполнен до обновления экрана.
Это имеет смысл, поэтому я хотел бы с разных интервалов прерывать обработку (т. Е. Цикл) и обновлять индикатор выполнения, прежде чем продолжить обработку.
Мой текущий код выглядит следующим образом:
@IBAction func goButton(sender: UIButton) {
currentCounter = 0
target = textTarget.text.toInt()!
step = textStep.text.toInt()!
updateProgressBar()
while currentCounter < target {
currentCounter += step
updateProgressBar()
}
}
func updateProgressBar() {
var percentage = Float(currentCounter)/Float(target) * 100
progressPercentage.text = "\(percentage) %"
println("progress = \(percentage)")
progressBar.setProgress(percentage, animated: false)
}
Я видел следующее:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
// do some task here...
}
dispatch_async(dispatch_get_main_queue()) {
// do another task here...
}
Как я мог бы использовать этот подход (если это уместно), и где бы обработка против придет звонок, чтобы освежиться, если я это сделал?
Jon
Perfect - спасибо –