2017-02-01 1 views
0

타이머를 사용하여 매 초마다 실행되는 아래 코드를 사용하고 있습니다.타이머 루프 AVFoundtion에서 오류가 발생했습니다.

음악 플레이어 앱에서 경과 시간으로 라벨을 업데이트하는 데 사용하고 있습니다.

그러나 나는 오류가 다음 행으로 다시 추적을 제공하는 발생 수 :

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

재미있는 버그 :

은 다음보십시오. Github에서이 오류를 재연 할 수있는 더미 프로젝트를 작성 하시겠습니까? –

답변

1

오류는 선택 사항 인 nil을 강제로 제거하여 트리거 할 수 있습니다. 또한 CMTime 구조체를 처리 할 수있는 도우미 함수가 있습니다.

guard let duration = player.currentItem?.duration else { 
    return 
} 
let length = CMTimeGetSeconds(duration)