Не могли бы вы вместо этого попробовать таймер?
Это не проверено.
let myTimer : Timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.performCountdown), userInfo: nil, repeats: false)
let countdown = ["3", "2", "1", "GO !"]
var i = 0
func performCountdown() {
while i < 4{
print(countdown[i])
i = i+1
}
Вы также можете использовать фоновый поток, это проверено и работает
import Foundation
import UIKit
let countdown = ["3", "2", "1", "GO !"]
DispatchQueue.global(qos: .background).async {
for i in 0..<countdown.count {
print(countdown[i])
sleep(1)
}
}