Применение блоков длительного цикла
У меня есть следующий цикл в моем приложении
var maxIterations: Int = 0
func calculatePoint(cn: Complex) -> Int {
let threshold: Double = 2
var z: Complex = .init(re: 0, im: 0)
var z2: Complex = .init(re: 0, im: 0)
var iteration: Int = 0
repeat {
z2 = self.pow2ForComplex(cn: z)
z.re = z2.re + cn.re
z.im = z2.im + cn.im
iteration += 1
} while self.absForComplex(cn: z) <= threshold && iteration < self.maxIterations
return iteration
}
и радужное колесо показывает во время выполнения цикла. Как я могу управлять тем, что приложение все еще реагирует на действия пользовательского интерфейса? Примечание. У меня NSProgressIndicator обновлен в другой части кода, которая не обновляется (прогресс не отображается) во время выполнения цикла. У меня есть подозрение, что это как-то связано с диспетчеризацией, но я вполне "зелен" с этим. Я ценю любую помощь. Благодарю.