Пытаясь запустить звуковой файл с функцией таймера, но после достижения отсчета таймера для запуска аудиофайла я получаю эту ошибку:
Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения.
Я не могу найти проблему, связанную с nil / optionals. Помогите мне с этим, пожалуйста, спасибо. (Файл A.wav находится в папке ресурсов проекта)
@State var timeCapture = 0
@State var counterValueInput = 0
@State var keySound: AVAudioPlayer?
var body: some View {TextField("Enter time", value: $counterValueInput, formatter: NumberFormatter()) Button(action: { self.timerBox()
}) {Text("Start")
}}
func timerBox(){
var runCount = 0
var counterValue = 0
Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
print("\(runCount)")
runCount += 1
self.timeCapture = runCount
counterValue = self.counterValueInput
if runCount == counterValue {
timer.invalidate()
self.keySoundPlay()
}
}
}
func keySoundPlay(){
let path = Bundle.main.path(forResource: "A", ofType:"wav")!
let url = URL(fileURLWithPath: path)
do {keySound = try AVAudioPlayer(contentsOf: url)
keySound?.play()
} catch {
print("nothing to catch")
}
}