我正在使用下面的代码,它使用计时器每秒执行一次。
我用它来更新音乐播放器应用程序中已用时间的标签。
但是我发生了一个错误,它给出了一个带有以下行的回溯:
CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION
停止原因= EXC_BREAKPOINT
禁用所有断点。
为什么会出现此错误?
func updateTime() {
// more code above
let length = Int64((player.currentItem?.duration.value)!) / Int64((player.currentItem?.duration.timescale)!)
// more code below
}
答案 0 :(得分:1)
可以通过强行展开nil
可选项来触发错误。此外,还有用于处理CMTime
结构的辅助函数。
尝试以下方法:
guard let duration = player.currentItem?.duration else {
return
}
let length = CMTimeGetSeconds(duration)